我決定使用CoffeeScript,並且我一直試圖將我的Node.js模塊轉換爲CoffeeScript。所以,這裏是JS代碼:在構造函數中循環時的綁定值CoffeeScript
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類。我編的「咖啡-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」陣列和返回,但從來沒有綁定到「這」。謝謝
謝謝。有沒有一個編輯器可以幫助我避免拼寫錯誤?...就像用不同的顏色爲「構造函數」着色,所以我可以捕捉它或其他方式 – latvian
@latvian大多數編輯器都有各種着色插件。如果您找不到適合您喜愛的編輯器的CoffeeScript插件,我會感到驚訝。 –
WebStorm是我使用的編輯器。我將研究CoffeeScript插件。謝謝 – latvian