前景介绍:
问题来自很早以前的一个面试题,修改构造函数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 的值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。