クラス内にメソッドを定義する方法は2つあります。クラスメソッド - どちらを使用するのか?
class Foo {
handleClick = e => {
// handle click
}
// and
handleHover(e) {
// handle hover
}
}
私の質問は2つの違いは何ですか? transpiledとき
、彼らは明らかに異なる結果を与える:
var _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Foo = function() {
function Foo() {
_classCallCheck(this, Foo);
this.handleClick = function (e) {}
// handle click
// and
;
}
_createClass(Foo, [{
key: "handleHover",
value: function handleHover(e) {
// handle hover
}
}]);
return Foo;
}();
をしかし、私は違いが何であるかを見分けるように見えることはできません。それは拘束力のある問題ですか?
ありがとうございます!
を参照してください。メソッド構文は、関数式の文法的な砂糖です。 –
入手しました。ありがとう! – abustamam
ここでは複製が実際には適用されないので、質問を再開しました。あなたのコードは有効なES6ではないことに注意してください。将来のバージョンのESで機能提案を使用します。 –