扫码关注官方订阅号
今天学习call和apply,发现了以下问题>
[].shift.apply( arguments )为什么不需要指定this;Array.prototype.push.call()和[].prototype.oush.call()的区别???希望能有人给我解答下,谢谢~
闭关修行中......
arguments就是指定的this。
arguments
this
[]没有prototype属性,构造函数才有这个属性,一般对象是没有的。要用也应该是[].push.call(...)。要说区别的话,[].push方法就是从Array.prototype继承来的,所以是等价的。不过前者浪费了一个[]对象,更耗一点内存。
[]
prototype
[].push.call(...)
[].push
Array.prototype
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
arguments就是指定的this。[]没有prototype属性,构造函数才有这个属性,一般对象是没有的。要用也应该是[].push.call(...)。要说区别的话,[].push方法就是从Array.prototype继承来的,所以是等价的。不过前者浪费了一个[]对象,更耗一点内存。