Array.prototype.slice.call(arguments) 一般用於將參數arguments強制轉化爲數組。數組
slice()方法可從已有的數組中返回選定的元素。因此這句代碼能夠等價爲[].slice.call(arguments);slice()爲Array原型上的一個方法,調用者沿着原型鏈向上尋找。slice方法的內部實現原理爲
Array.prototype.slice = function(start,end){ var result = new Array(); start = start || 0; // 若是不傳則取默認值 end = end || this.length; // 若是不傳則取默認值 //this指向調用的對象,當用了call後,可以改變this的指向,也就是指向傳進來的對象,這是關鍵 for(var i = start; i < end; i++){ result.push(this[i]); } return result; }
而call是爲了改變調用者的內部this指向,用法:this
call(this,arg1,arg2);