今天学习call和apply,发现了以下问题>
[].shift.apply( arguments )为什么不需要指定this;
Array.prototype.push.call()和[].prototype.oush.call()的区别???
希望能有人给我解答下,谢谢~
arguments
就是指定的this
。[]
没有prototype
属性,构造函数才有这个属性,一般对象是没有的。要用也应该是[].push.call(...)
。要说区别的话,[].push
方法就是从Array.prototype
继承来的,所以是等价的。不过前者浪费了一个[]
对象,更耗一点内存。