我决定使用 CoffeeScript,并且一直在尝试将我的 Node.js 模块转换为 CoffeeScript。所以,这是JS中的代码:
function Domain(obj){
var self = this;
for (var key in obj){
this[key] = obj[key]; //merge values
}
}
Domain.prototype.save = function(fn){
}
我尝试在 CoffeeScript 中具有相同的内容,如下所示:
class Domain
consructor: (obj) ->
for own key, value of obj
@key = value
save: (fn) ->
module.exports = Domain
以下测试失败:
require('coffee-script');
var should = require('should')
, Domain = require('../index');
should.exist(Domain);
var domain = new Domain({'attOne':1, 'attTwo':2});
domain.should.have.property('save');
domain.should.have.property('attOne');
domain.should.have.property('attTwo');
domain.save.should.be.an.instanceof(Function);
console.log('All tests passed');
属性“attrOne”和“attrTwo”未绑定到 Domain 类。我已经通过'coffee -c index.coffee'编译了咖啡代码来查看js代码:
(function() {
var Domain,
__hasProp = {}.hasOwnProperty;
Domain = (function() {
function Domain() {}
Domain.prototype.consructor = function(obj) {
var key, value, _results;
_results = [];
for (key in obj) {
if (!__hasProp.call(obj, key)) continue;
value = obj[key];
_results.push(this.key = value);
}
return _results;
};
Domain.prototype.save = function(fn) {};
return Domain;
})();
module.exports = Domain;
}).call(this);
从编译的 js 中,我看到生成并返回了“_result”数组,但从未绑定到“this”。我如何将数组绑定到类范围以通过测试?谢谢