javascriptにおけるappyとcall方法の役割と違いについて説明します.
1225 ワード
一、callとappyの説明
1、call、appyはすべてFunction.prototypeの一つの方法であり、JavaScriptエンジン内に実装されています.Function.prototypeに属しているので、各Functionオブジェクトインスタンスにはcallがあり、apply属性があります.方法の属性である以上、それらの使用は当然、方法に対して行われます.この二つの方法は、それらの作用が同じで、使い方が違っているだけです.
2、文法:foo.call(this、arg 1、arg 2、arg 3)==foo.appy(this、argments)==this.foo(arg 1、arg 2、arg 3);
3、同じ点:二つの方法が生み出す役割は全く同じです.
4、異なる点:方法伝達のパラメータが異なる.
二、インスタンスコード
1、実例コードは2つの関数AとBを定義しています.Aにはflags属性とtip属性(この属性には関数が割り当てられています.)が含まれています.Bにはflags属性があります.
2、AとBのオブジェクトaとbをそれぞれ作成します.
3、a.tip.cal(b)であれ;a.tip.appy(b)と運転の結果はポップアップBです.
4、その結果、callとappyの両方がAオブジェクトのtipメソッドをBオブジェクトに呼び出すことができ、thisの現在の作用対象を修正したことが分かります.
1、call、appyはすべてFunction.prototypeの一つの方法であり、JavaScriptエンジン内に実装されています.Function.prototypeに属しているので、各Functionオブジェクトインスタンスにはcallがあり、apply属性があります.方法の属性である以上、それらの使用は当然、方法に対して行われます.この二つの方法は、それらの作用が同じで、使い方が違っているだけです.
2、文法:foo.call(this、arg 1、arg 2、arg 3)==foo.appy(this、argments)==this.foo(arg 1、arg 2、arg 3);
3、同じ点:二つの方法が生み出す役割は全く同じです.
4、異なる点:方法伝達のパラメータが異なる.
二、インスタンスコード
<br> function A(){
<br> this.flag = 'A';
<br> this.tip = function(){
<br> alert(this.flag);
<br> };
<br> }
<br> function B(){
<br> this.flag = 'B';
<br> }
<br> var a = new A();
<br> var b = new B();
<br> //a.tip.call(b);
<br> a.tip.apply(b);
<br>
三、コード解釈(つまり、appyとcallの役割を説明する)1、実例コードは2つの関数AとBを定義しています.Aにはflags属性とtip属性(この属性には関数が割り当てられています.)が含まれています.Bにはflags属性があります.
2、AとBのオブジェクトaとbをそれぞれ作成します.
3、a.tip.cal(b)であれ;a.tip.appy(b)と運転の結果はポップアップBです.
4、その結果、callとappyの両方がAオブジェクトのtipメソッドをBオブジェクトに呼び出すことができ、thisの現在の作用対象を修正したことが分かります.