数组直接量与构造函数之间的区别

今天学习call和apply,发现了以下问题>

[].shift.apply( arguments )为什么不需要指定this;
Array.prototype.push.call()和[].prototype.oush.call()的区别???
希望能有人给我解答下,谢谢~

阅读 2.5k
1 个回答
  1. arguments就是指定的this

  2. []没有prototype属性,构造函数才有这个属性,一般对象是没有的。要用也应该是[].push.call(...)。要说区别的话,[].push方法就是从Array.prototype继承来的,所以是等价的。不过前者浪费了一个[]对象,更耗一点内存。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题