今天看到这个用法的时候产生了疑问,
slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个数组。你只需将该方法绑定到这个对象上。
mdn上给出了一个例子:
function list() {
return Array.prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
我的问题是:
平时更容易遇到fun.call (null, arguments)
这样的用法,因为Function.prototype.call()的用法是
fun.call(thisArg[, arg1[, arg2[, ...]]])
所以遇到把Array.prototype.slice.call(arguments)
这样的把arguments作为在函数运行时指定的this值感觉很别扭,总是想成Array.prototype.slice.call(null, arguments)
这样的,又不知道这样为什么不对?
除了Array.prototype.slice.call(arguments)
这样的用法,那么Array.prototype上其他的方法是不是也可以这样使用呢?比如Array.prototype.splice.call(arguments,1)
?
JavaScript 中 JavaScript的值怎么获取?
JavaScript中函数的重要性
javascript中如何换行?
写script中的type=”text/javascript”和language=”Javascript”?区别?
相关分类