写在前面

简单的总结来说就一句话:如果return的值是基本数据类型的话,则忽略return,直接返回实例化的对象;如果return的值是引用类型的话,则不再返回实例化的对象,而是直接返回return返回的引用类型的值。

demo帮助理解

看几个例子

1
2
3
4
5
6
function Person(name) {
this.name = name
return 12306
}
let p = new Person('Tom')
console.log(p);

此种情况下,会忽略return后面的12306,而直接返回Person的实例化对象。

1
2
3
4
5
6
7
let obj = {age: 26}
function Person(name) {
this.name = name
return obj
}
let p = new Person('Tom')
console.log(p);

此种情况下,由于return的值是一个对象,所以p的值最后会是返回的对象,即obj.