1.apply();
function box(n1,n2){return n1+n2; } function pox(n1,n2){alert(box.apply(this,[n1,n2])); //this指window下全局屬性//這里沒有返回值,沒有運算,通過冒充box里的運算來執行 } pox(10,20); //30
注:如果參數過多,冒充對象傳參的時候可以寫成arguments
function box(n1,n2){return n1+n2; }function pox1(n1,n2){alert(box.apply(this,arguments)); } pox1(10,30); //得到40
2.call()
function box(n1,n2){return n1+n2; }//call和apply只是傳參形式不同,其他都一樣 function pox2(n1,n2){alert(box.call(this,n1,n2)); }pox2(20,0); //20
3.call()和apply()最大的好處,就是對象不需要與方法發生任何關聯.對象和方法不會有多余的關聯操作,對程序的維護提供便利