私はcoffeescriptクラスを使用してきましたが、私が知る限り、関数は常に最後のステートメントを自動的に返す必要があります。ただし、コンストラクターオブジェクトで定義された関数は、デフォルトでは何も返さないことがわかりました。どうしてこれなの?
CoffeeScript
constructor: ->
@ # <~~ returned as expected
class MyClass
constructor: ->
@ # <~~ not returned - why?
class MyClass
constructor: ->
return ->
@ # <~~ returned like normal!
JavaScript
var MyClass;
({
constructor: function() {
return this;
}
});
MyClass = (function() {
function MyClass() {
this;
}
return MyClass;
})();
MyClass = (function() {
function MyClass() {
return function() {
return this;
};
}
return MyClass;
})();