ホームページ > ウェブフロントエンド > jsチュートリアル > アロー関数は ES6 オブジェクト メソッドとして使用できますか?

アロー関数は ES6 オブジェクト メソッドとして使用できますか?

Barbara Streisand
リリース: 2024-12-21 19:12:17
オリジナル
897 人が閲覧しました

Can Arrow Functions Be Used as ES6 Object Methods?

ES6 オブジェクトのアロー関数: 構文のリンボ

ES6 では、従来の関数構文または簡潔なメソッド構文を使用してオブジェクト メソッドを定義できます。ただし、このコンテキストで新しく導入されたアロー関数を活用できますか?

使用試行と発生したエラー:

次に示すように、アロー関数をオブジェクト メソッドとして使用しようとしました。 、結果はエラー:

var chopper = {
    owner: 'John',
    getOwner: () => { return this.owner; }
};
ログイン後にコピー

理由:

アロー関数は、オブジェクトのコンテキストの外にある語彙の this 値をキャプチャするため、オブジェクト メソッドでは期待どおりに機能しません。これにより、this は、オブジェクト インスタンスではなく、グローバルの this または字句的に囲む関数の this を参照することになります。

代替案と推奨事項:

オブジェクト メソッドの場合、従来の関数構文または ES6 メソッド構文は次のようにする必要があります。 used:

// Traditional function syntax
var chopper = {
    owner: 'Zed',
    getOwner: function() { return this.owner; }
};

// ES6 method syntax
var chopper = {
    owner: 'Zed',
    getOwner() { return this.owner; }
};
ログイン後にコピー

Unbound Arrow Functions (Rejected Proposal):

アロー関数に似た構文を導入する非バインド アロー関数の提案がありましたが、このバインディングは別のものです。しかし、この提案はボイラープレートを削減するだけであり、新しい機能は提供されなかったため、拒否されました。

以上がアロー関数は ES6 オブジェクト メソッドとして使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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