[英]Array() and Array.prototype usage
首先,如果答案顯而易見,並且/或者很容易找到,我想請求借口。 我沒有找到任何完整的答案。
問題很簡單:
var array1 = Array().slice.call(arguments,1);
var array2 = Array.prototype.slice.call(arguments,1);
他們做同樣的事情。 你能用這種方式做Object,Date,String等原型
是的,你可以,因為每個實例都繼承自其構造函數的原型。
即(new Array()).slice
(或更好, [].slice
)與Array.prototype.slice
完全相同。
第二種方法更好,因為您沒有創建一個未使用的數組。 使用第一種方法,您構建一個數組,然后使用動態原型鏈解析來定位它的切片方法,然后使用您的參數作為上下文進行call
。 第二種方法直接訪問slice
方法,因此您將避免對象創建和原型鏈解析,因此它更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.