call,apply
函数的参数列表arguments 是一个类数组对象,虽然它也有“下标”,但它并非真正的数组,所以也不能像数组一样,进行排序操作或者往集合里添加一个新的元素。这种情况下,我们常常会借用Array.prototype 对象上的方法。比如想往arguments 中添加一个新的元素,通常会借用Array.prototype.push:
(function(){
Array.prototype.push.call( arguments, 3 );
console.log ( arguments ); // 输出[1,2,3]
})( 1, 2 );
想把arguments 转成真正的数组的时候,可以借用Array.prototype.slice 方法;想截去arguments 列表中的头一个元素时,又可以借用Array.prototype.shift 方法。
网友评论