JSでは、このポインティングは初心者にとって難しい問題であるに違いありませんが、本当に理解していれば、問題はありません。以下でこれについて説明しましょう。
JSでは、この値はコールのパターン(コールオブジェクト)に依存し、JSには4種類の呼び出しパターンがあります。
1。関数呼び出しモード
関数がオブジェクトのプロパティではない場合、2つの関数と呼ばれます。この時点で、関数のこれはグローバルオブジェクトを指します(大きな対数のウィンドウ)
window.value = 1; function getValue(){console.log(this.value);} getValue(); // output 1、このポイントからウィンドウ2。メソッド呼び出しモード
関数がオブジェクトのプロパティである場合、オブジェクトの方法と呼びます。メソッドが呼び出されると、これはオブジェクトを指します
var obj = {value:2、getValue:function(){console.log(this.value); // output 2、これはobjにポイント}}}}! ! !このモードでは、このメソッドが呼び出されたときにこれをオブジェクトに結合することが発生します
3。コンストラクターコールモード
newで呼ばれる関数は、コンストラクター関数と呼ばれます。この時点で、これはコンストラクター関数インスタンスから来るオブジェクトを指します
function main(val){this.value = val;} main.prototype.getValue = function(){console.log(this.value);} var fun = new main(3); fun.getvalue(); fun.value; // output 3、これはインスタンスオブジェクトのポイント4。呼び出しモードを適用してバインドします
適用、呼び出し、バインドメソッドを使用すると、発信者が指し示している人を設定できます
function showvalue(){console.log(this.value);} var obj = {value:4} showvalue.call(obj)// output 4、これはOBJオブジェクトをポイントしますECMA5に新しいバインドメソッドが追加されました。特定の使用法をグーグルで検索できます。このバインディングの使用のデモンストレーションです。
function showvalue(){console.log(this.value);} var obj = {value:4} var showvalue2 = showvalue.bind(obj); showvalue2()// output 4、これはobjオブジェクトを指しますバインドの用途がたくさんあります、あなたはそれを自分でチェックすることができます
JSでこれについての上記の決まり文句は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。