call,apply
函數(shù)的參數(shù)列表arguments 是一個(gè)類數(shù)組對象,雖然它也有“下標(biāo)”,但它并非真正的數(shù)組,所以也不能像數(shù)組一樣,進(jìn)行排序操作或者往集合里添加一個(gè)新的元素。這種情況下,我們常常會借用Array.prototype 對象上的方法。比如想往arguments 中添加一個(gè)新的元素,通常會借用Array.prototype.push:
(function(){
Array.prototype.push.call( arguments, 3 );
console.log ( arguments ); // 輸出[1,2,3]
})( 1, 2 );
想把a(bǔ)rguments 轉(zhuǎn)成真正的數(shù)組的時(shí)候,可以借用Array.prototype.slice 方法;想截去arguments 列表中的頭一個(gè)元素時(shí),又可以借用Array.prototype.shift 方法。