次の 2 つの CoffeeScript クラス定義があります。私はそれらが同じ動作をすることを期待していましたが、そうではありません。A
特にのインスタンスへのアクセスDoesNotWork
は未定義です。
fields = ["A","B","C"]
class DoesNotWork
constructor: () ->
_.each(fields, (f) -> @[f] = ko.observable(''))
class DoesWork
constructor: () ->
@A = ko.observable('')
@B = ko.observable('')
@C = ko.observable('')
上記のコードは次のようにコンパイルされます
var DoesNotWork, DoesWork, fields;
fields = ["A", "B", "C"];
DoesNotWork = (function() {
function DoesNotWork() {
_.each(fields, function(f) {
return this[f] = ko.observable('');
});
}
return DoesNotWork;
})();
DoesWork = (function() {
function DoesWork() {
this.A = ko.observable('');
this.B = ko.observable('');
this.C = ko.observable('');
}
return DoesWork;
})();
私が微妙に見逃している初心者のJSは何ですか?