適用()と()の呼び出し:各関数は非継承の2つのメソッドが含まれています
1.これらの2つの方法の使用:インビボでのこのオブジェクトの機能の設定値と実質的に同等の機能、特定のドメインの効果を呼び出します
引数の配列は、(配列または引数がオブジェクトインスタンス)があり、機能が実行されている範囲:(1)適用()メソッドは、2つのパラメータをとり
関数の和(NUM1、NUM2){
NUM1 + NUM2を返します
}
関数callSum(NUM1、NUM2){
sum.apply(この、引数)を返します。
}
警告(callSum(10,10)); // 20
(それはグローバルコールがあるため、すべての入力がウィンドウオブジェクトである)、および引数オブジェクトは、この値としての機能)和(の実装を渡すcallSum()
(2)同じ関数(適用とのコール()メソッド)を、そのさまざまな方法に許容されるパラメータを除いて、最初のパラメータは、この値は変化しない呼び出しを直接関数に渡された残りのパラメータの変化です。
関数の和(NUM1、NUM2){
NUM1 + NUM2を返します
}
関数callSum(NUM1、NUM2){
sum.call(これ、NUM1、NUM2)を返します。
}
警告(callSum(10,10)); // 20
2.apply()と()の呼び出しを実行する上での機能の範囲を拡大することができるようにする本当の強い場所です。
window.color = "赤"
VAR 0 = {色「青」}。
機能sayColor(){
警告(this.color)。
}
sayColor(); //赤
sayColor.call(この); //赤
sayColor.call(ウィンドウ); //赤
sayColor.call(O); //青
彼は説明した:sayColorは()を使用すると、グローバルドメインでそれを呼び出したとき、それは赤く表示され、グローバル関数として定義され、この中sayColor.call(これは)wimdowあり、そしてsayColor.call(窓)、グローバルであります、結果はまだ「赤」が表示されます)(sayColorスコープを呼び出して、
sayColor.call(O)を実行しているときに、このオブジェクト点Oの機能の本体は、結果が青色であるためしかし、機能の実行環境は、同じではありません
コールを使用して()と最大の利益の範囲を拡大するために適用するカップリング法との間の関係であることが必要がないことです