javascript - js 使用new创建对象发生了什么?
黄舟
黄舟 2017-04-11 11:04:32
[JavaScript讨论组]

使用new时,改变了构造函数中的this指向,生成的对象中有一个指向构造器原型的属性。
怎么多出来个return 就打破了这点呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
巴扎黑

想知道new之后发生了什么么?来来来,看文档:

注意我选中的部分,“通常构造器不会指定返回值,但如果你硬要改变默认行为,也是可以显式指定一个Object作为返回值覆盖默认行为的”

PHP中文网

在构造函数中,一般不允许返回东西出来。 这好像是一个默认规定。
如果return object、array,function, 那么new表达式返回值即使return值。否则返回的是构造函数的函数体形成的对象。

new对象发生了事情:
创建空对象
把this指向空对象
赋值
方法中的this指代 new 出来的对象。

天蓬老师

b之所以会出来11 是因为你的b的返回值是个对象。里面有a属性。但是跟自身的a无关。很简单的道理

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号