これを JavaScript で使用する方法: 1. 関数にオブジェクトがある場合、関数はそのオブジェクトを指します; 2. 関数にオブジェクトがない場合、グローバル オブジェクトを指します; 3. これはコンストラクターは新しいオブジェクトを指します。
このチュートリアルの動作環境: Windows 7 システム、JavaScript バージョン 1.8.5、DELL G3 コンピューター。
これを JavaScript で使用する方法:
1) 関数にそれが属するオブジェクトがある場合: 関数が属するオブジェクトをポイントします
関数には、それが属するオブジェクトがあります オブジェクトが使用されるとき、通常、その関数は式を通じて呼び出されますが、この場合、これは当然、それが属するオブジェクトを指します。たとえば、次の例:
var myObject = {value: 100}; myObject.getValue = function () { console.log(this.value); // 输出 100 // 输出 { value: 100, getValue: [Function] }, // 其实就是 myObject 对象本身 console.log(this); return this.value; }; console.log(myObject.getValue()); // => 100
getValue() はオブジェクト myObject に属し、myOjbect によって呼び出されるため、これはオブジェクト myObject を指します。
2) 関数には所有オブジェクトがありません: グローバル オブジェクトを指します
var myObject = {value: 100}; myObject.getValue = function () { var foo = function () { console.log(this.value) // => undefined console.log(this);// 输出全局对象 global }; foo(); return this.value; }; console.log(myObject.getValue()); // => 100
上記のコード ブロックでは、foo 関数が関数本体で定義されていますが、 getValue、実際には getValue にも myObject にも属しません。 foo はどのオブジェクトにもバインドされていないため、呼び出されるとき、その this ポインタはグローバル オブジェクトを指します。
これは設計ミスだと言われています。
3) コンストラクター内のこれ: 新しいオブジェクトを指します
#js では、 new キーワードを使用してコンストラクターを呼び出します。これは、新しいオブジェクトについて。
var SomeClass = function(){ this.value = 100; } var myCreate = new SomeClass(); console.log(myCreate.value); // 输出100
ところで、js では、コンストラクター、通常の関数、オブジェクトのメソッド、クロージャーの間に明確な境界はありません。境界線はすべて人間の心の中にあります。
4) 呼び出しの適用と呼び出し、およびバインドのバインド: バインドされたオブジェクトへのポイント
apply() メソッドは 2 つのパラメーターを受け取ります。最初の 1 つは実行関数です。関数.ドメイン、もう 1 つはパラメーター (引数) の配列です。
call() メソッドの最初のパラメータの意味は、他のパラメータを 1 つずつリストする必要があることを除いて、apply() メソッドの意味と同じです。
簡単に言うと、call メソッドは通常の関数の呼び出し方法に近いのに対し、apply では Array の形式で配列を渡す必要があります。それらは交換可能です。
var myObject = {value: 100}; var foo = function(){ console.log(this); }; foo(); // 全局变量 global foo.apply(myObject); // { value: 100 } foo.call(myObject); // { value: 100 } var newFoo = foo.bind(myObject); newFoo(); // { value: 100 }
関連する無料学習の推奨事項: JavaScript ビデオ チュートリアル
以上がこれをJavaScriptで使用するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。