前景介绍:
问题来自很早以前的一个面试题,批改构造函数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 的值