ホームページ > ウェブフロントエンド > jsチュートリアル > ES6 オブジェクト メソッドは「function」キーワードなしで定義できますか?

ES6 オブジェクト メソッドは「function」キーワードなしで定義できますか?

DDD
リリース: 2024-12-04 21:51:11
オリジナル
1003 人が閲覧しました

Can ES6 Object Methods Be Defined Without the

「関数」キーワードのないメソッド定義: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート