Array.prototype.slice.call()
将函数的实际参数转换成数组的方法
例子一:
function test() {
// 截取参数的一部分,第二个参数空则不截取,直接返回参数 数组
var arg = Array.prototype.slice.call(arguments, 1);
return arg;
}
运行效果:
将arguments打印出来:发现它是一个具有length属性的对象
我们自己造一个差不多的对象试试:
然后我们把length值改成1试试:
总结:Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,而length属性决定了返回的数组长度。
实际应用:
function (param) {
var args = !!param ? Array.prototype.slice.call(arguments) : [];
return args.reduce(function (pre, cur) {
return pre + cur;
}, 0)
}
这个函数将会返回所有传入参数的总和。param是为了校验是否传入参数,reduce用来计算。