使用new时,改变了构造函数中的this指向,生成的对象中有一个指向构造器原型的属性。
怎么多出来个return 就打破了这点呢?
在构造函数中,一般不允许返回东西出来。 这好像是一个默认规定。
如果return object、array,function, 那么new表达式返回值即使return值。否则返回的是构造函数的函数体形成的对象。
new对象发生了事情:
创建空对象
把this指向空对象
赋值
方法中的this指代 new 出来的对象。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
想知道
new
之后发生了什么么?来来来,看文档:注意我选中的部分,“通常构造器不会指定返回值,但如果你硬要改变默认行为,也是可以显式指定一个
Object
作为返回值覆盖默认行为的”