ホームページ >ウェブフロントエンド >jsチュートリアル >javascript_javascriptスキルの関数とapplyメソッドとcallメソッドの違いの説明
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. コード例
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 メソッドを呼び出し、その現在のアクション オブジェクトを変更できることがわかります。