ホームページ  >  記事  >  ウェブフロントエンド  >  jsでのこれの理解

jsでのこれの理解

一个新手
一个新手オリジナル
2017-10-11 09:48:041720ブラウズ

前書き:このオブジェクトは、厳密モードが使用されていない場合にのみ機能します。 this オブジェクトは、実行時に関数の実行環境によってバインドされます。

ケース 1: グローバル関数では、これは window と等しくなります。関数がオブジェクトのメソッドとして呼び出された場合にのみ、これはそのオブジェクトと等しくなります。グローバル関数が何なのかまだわからない場合は、ここをクリックしてリンクを開いてください

ケース 2: 匿名関数の実行環境はグローバルであり、これは通常ウィンドウを指します

たとえば

var name = "window";

var object = {
   name: "Object name",
   getNameFunc: function () {
        return function (){
            return this.name;
        };
    }
};
console.log(object.getNameFunc() ()); // 输出window

ケース 3: 外部スコープに置く this オブジェクトは、クロージャからアクセスできる変数に保存されます。たとえば、

var name = "window";

var object = {
   name: "Object name",
   getNameFunc: function () {
       var that = this;
        return function (){
            return that.name;
        };
    }
};
console.log(object.getNameFunc() ());  // 输出Object name

ケース 4

のように this オブジェクトを参照することができます。 : 関数が最初に割り当てられてから実行される場合、this の値は維持できません例:

var name = "window";

var object = {
    name: "Object name",
    getName: function () {
        return this.name;
    }
};
console.log((object.getName = object.getName) ());  // 输出window

ケース 5: 関数の実行環境が call または apply によって変更された場合、this

は を指します。他のオブジェクト

以上がjsでのこれの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。