[英]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.