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