前書き:このオブジェクトは、厳密モードが使用されていない場合にのみ機能します。 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
のように this オブジェクトを参照することができます。 : 関数が最初に割り当てられてから実行される場合、this の値は維持できません例:
var name = "window"; var object = { name: "Object name", getName: function () { return this.name; } }; console.log((object.getName = object.getName) ()); // 输出window
は を指します。他のオブジェクト
以上がjsでのこれの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。