ホームページ > ウェブフロントエンド > jsチュートリアル > ES6 のアロー関数では、通常の関数と比べて「this」の動作がどのように異なりますか?

ES6 のアロー関数では、通常の関数と比べて「this」の動作がどのように異なりますか?

Linda Hamilton
リリース: 2024-12-17 15:43:16
オリジナル
528 人が閲覧しました

How Does `this` Work Differently in ES6 Arrow Functions Compared to Regular Functions?

ES6 アロー関数の "this" を理解する

JavaScript では、this の値は使用されるコンテキストによって異なります。アロー関数を使用する場合、this の動作を決定する「字句制限」の概念が関連します。

アロー関数は、定義されている周囲のコンテキストから this の値を継承します。通常の関数とは異なり、アロー関数はこれに対する独自のスコープを作成しません。次のコードを考えてみましょう。

var testFunction = () => {
  console.log(this);
};
testFunction();
ログイン後にコピー

ここで、アロー関数 testFunction は、囲んでいるコンテキスト (この場合はグローバル スコープ) から this の値を取得します。したがって、console.log(this) はグローバル オブジェクトを出力します。

対照的に、通常の関数は this 用に独自のスコープを作成できます。例:

function Person() {
  this.age = 0;

  const increaseAge = function() {
    this.age++; // `this` refers to the Person object
  };

  increaseAge();
}

const p = new Person();
ログイン後にコピー

この例では、increaseAge 関数が Person コンストラクター内にネストされています。これが呼び出されるとき、this は new キーワードで作成されたため、そのインスタンスを参照します。

要約すると、アロー関数は、囲んでいるコンテキストから this の値を継承し、一貫性が保たれるようにします。周囲のコード。この動作は、独自のスコープを作成する通常の関数とは異なります。この重要な違いを理解することは、JavaScript 開発内のアロー関数でこれを適切に処理するために非常に重要です。

以上がES6 のアロー関数では、通常の関数と比べて「this」の動作がどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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