ホームページ >ウェブフロントエンド >jsチュートリアル >jsでのapplyとcallの簡単な使い方を詳しく解説

jsでのapplyとcallの簡単な使い方を詳しく解説

小云云
小云云オリジナル
2017-12-28 09:14:541421ブラウズ

call と apply はこれを動的に変更するように見えますが、あるオブジェクトに特定のメソッドがない場合、他のオブジェクトのメソッドを使用して操作するために call または apply を使用できます。この記事では主に js での apply と call の簡単な使い方を詳しく紹介しますので、興味のある方はぜひ参考にしてください。

call と apply は、JavaScript エンジンによって内部的に実装される Function.prototype のメソッドであり、Function.prototype に属するため、各 Function オブジェクトのインスタンス、つまり各メソッドはメソッドであるため、call 属性と apply 属性を持ちます。これら 2 つのメソッドは同じ機能を持っているため、混同しやすいですが、上記のことから、call と apply はメソッドとして使用されると結論付けることができます。 , メソッドを呼び出す this ポインタを変更するには

簡単な例:

call

function A() {
  this.getName = function (xx) {
    return xx;
  }
}

function B() {

}

var a = new A();
console.log( a.getName('i am A') ); //i am A

var b = new B() ;
console.log( a.getName.call(b,'i am B') ); // i am B
関数 B にはメソッドがありません。関数 A には getName() メソッドが当然確立されますが、 B も getName( ) メソッドを使用する必要がありますか? 次に、 call(this,'parameter') を使用します。 !

この文を再度理解すると、call または apply を使用して他のオブジェクトのメソッドを呼び出して操作することができます。call と apply は、本来は a.getName() の this を指しており、this を動的に指します。 b に変換し、b.getName() になります

apply


apply と call はパラメーターの使用法が異なるだけです

function A() {
  this.sun = function (a ,b) {
    return a+b;
  }
}

function B() {

}

var a = new A();
console.log( a.sun(1,2) ); //3

var b = new B() ;
console.log( a.sun.call(b,2,2) ); // 4

console.log( a.sun.apply(b,[3, 3]) ); //6
call と apply の一般的な使用法

より一般的に使用されるものは、選択された dom ノードを使用します。 by getElementsByTagName は配列のような配列です。プッシュ、ポップ、その他のメソッドを配列の下に適用することはできません。 domNodes が Array の下にあるすべてのメソッドを適用できるように、:

var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
を渡すことができます。

関連する推奨事項:


関数本体の内部ポイントを変更するためのJavaScriptでのapplyとcallの使用例の詳細な説明

JSのcall()とapply()の理解

Jsのここがポイントapply() と binding() の問題

以上がjsでのapplyとcallの簡単な使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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