前景介绍:
问题来自很早以前的一个面试题, 批改构造函数 return 的数据, 这个构造函数的后果是什么?
//1. 初始状态
function Person(obj){
this.name = obj.name;
this.age = obj.age;
}
let person = new Person({
name:"肖战",
age :"30",
})
console.log(person);// Person {name: '肖战', age: 30}
//2. 批改 return 的值
function Person(obj){
this.name = obj.name;
this.age = obj.age;
return {name:"xiaobai"}
}
let person = new Person({
name:"肖战",
age :"30",
})
console.log(person);// Person {name: '肖战', age: 30}
所有状况的总结在下图中, 如果没有显示批改 return 的值, 或者是 return 的是简略出具类型和 null 的状况, 返回的都是构造函数自身, 如果返回的是简单数据类型, 数组 / 函数 / 对象, 那该构造函数创立的实例对象就是 return 的值