「関数」キーワードのないメソッド定義: ES6 機能
この記事では、異常な観察、つまり、 「function」キーワードのないオブジェクト メソッド。この奇妙な動作は特定のブラウザで発生しており、その起源と影響について考えさせられています。
問題のオブジェクト メソッド定義は次のとおりです。
var module = { foobar(arg1) { alert(arg1); } };
従来の JavaScript 構文では、このメソッドは次のようになります。次のように宣言されています:
foobar: function(arg1) {}
ただし、この例では「関数」が省略されているため、その互換性と次の機能との潜在的な関係について疑問が生じています。 ES6 の機能。
回答
はい、このメソッド定義は ES6 のオブジェクト メソッドの新しい構文の結果です。 ES6 では、短縮表記により、「function」キーワードを使用せずに、より簡潔なメソッド定義が可能になります。これは、従来の関数に代わる簡素化されたアロー関数を使用することで実現されます。
ECMAScript 6 仕様では、メソッド定義に関して次のように規定されています。
A property of an object can also refer to a function or a getter or setter method. var o = { property: function ([parameters]) {}, get property() {}, set property(value) {}, }; In ECMAScript 6, a shorthand notation is available, so that the keyword "function" is no longer necessary. // Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
したがって、メソッド定義は「関数」のないものは、特定のブラウザでサポートされる有効な ES6 構文です。ただし、元の質問で述べたように、この機能はブラウザの異なるバージョン間で普遍的な互換性がない可能性があります。
以上がES6 オブジェクト メソッドは「function」キーワードなしで定義できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。