扫码关注官方订阅号
认证高级PHP讲师
这个函数。。。就是为了说明new的过程,开辟空间,复制函数,至于怎么证明= =
这个证明简单如果 Foo.apply(obj, arguments);在obj.__proto__ = Foo.prototype;之前Foo函数内的this是不能访问Foo.prototype上的方法或属性的,因为原型链还没有构建好
Foo.apply(obj, arguments);
obj.__proto__ = Foo.prototype;
比如
Foo = function () { this.name = 'haha'; this.say(); } Foo.prototype.say = function () { console.log(this.name); }
如果apply在之前,则this.say()是不会执行的,应该是直接报错。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这个函数。。。就是为了说明new的过程,开辟空间,复制函数,至于怎么证明= =
这个证明简单
如果
Foo.apply(obj, arguments);在obj.__proto__ = Foo.prototype;之前Foo函数内的this是不能访问Foo.prototype上的方法或属性的,因为原型链还没有构建好
比如
如果apply在之前,则this.say()是不会执行的,应该是直接报错。