ホームページ >ウェブフロントエンド >jsチュートリアル >javascript_javascriptスキルの関数とapplyメソッドとcallメソッドの違いの説明

javascript_javascriptスキルの関数とapplyメソッドとcallメソッドの違いの説明

WBOY
WBOYオリジナル
2016-05-16 17:00:031000ブラウズ

1. 電話と申し込みの手順

1. Call と apply はどちらも Function.prototype のメソッドであり、JavaScript エンジンによって内部的に実装されるため、各 Function オブジェクト インスタンス (つまり、各メソッド) に call があります。 、属性を適用します。 これらはメソッドの属性であるため、その使用方法は当然メソッドに固有です。これら 2 つのメソッドは同じ機能を持ちますが、使用方法が異なるため、混同されやすいです。

2, 構文: foo.call(this, arg1,arg2,arg3) == foo.apply(this, argument) == this.foo(arg1, arg2, arg3);

3. 類似点: 2 つの方法の効果はまったく同じです。

4. 相違点: メソッドによって渡されるパラメータが異なります。

2. コード例

コードをコピーします コードは次のとおりです:



3. コードの説明 (apply と call の機能の説明)

1. コード例では、2 つの関数 A と B を定義しています。A には flag 属性とtip 属性が含まれており (この属性には関数が割り当てられています)、B には flag 属性があります。

2. AとBのオブジェクトaとbをそれぞれ作成します。

3. a.tip.call(b) または a.tip.apply(b) の実行結果は B です。

4. 結果から、call と apply の両方で、B オブジェクトに A オブジェクトのtip メソッドを呼び出し、その現在のアクション オブジェクトを変更できることがわかります。

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