apply()使用技巧

apply()與call()

主要是傳參的不同

/*apply()方法*/
function.apply(thisObj[, argArray])

/*call()方法*/
function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);

apply()繼承Math.max 來實現得到數組中最大的一項

Math.max不支持數組參數Math.max([param1,param2])
但是它支持Math.max(param1,param2…)
可以使用apply將數組作爲參數傳入

var max = Math.max.apply(null,array)
var min = Math.min.apply(null,array)

因爲我們只需要用這個方法幫我運算,不需要對象去調用這個方法,得到返回的結果就行,所以第一個參數可以傳

apply()繼承Math.max 來實現兩個數組的合併

同理,push不能傳數組參數,只能傳字符對象,可以使用apply將數組作爲參數傳入

var arr1=new Array("1","2","3");
var arr2=new Array("4","5","6");
Array.prototype.push.apply(arr1,arr2); 

在這裏插入圖片描述
push方法會直接返回push後的數組長度,並且arr1已經改變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章