在博客看到这样一个例子:function specialArray(){ var values = new Array(); values.push.apply(values,arguments); values.toPipedString = function(){ return this.join('|'); } return values;};var color = new specialArray('blue','red','yellow')alert(color.toPipedString())对这句values.push.apply(values,arguments)不太明白,首先是push不是应该是一个方法吗?这样的写法很奇怪;其次apply不是用来冒充对象的吗?虽然我知道这句话的作用是把传进去的参数添加到values这个数组末尾,但是具体是怎么实现的请大神指点一下,谢谢!
2 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞

首先你对apply的理解是有误的,多看下文档。
values.push.apply(values,arguments);
相当于
for(let i = 0 ; i < arguments.length ; i++){
values.push(arguments[i])
}
更加简洁
添加回答
举报
0/150
提交
取消
