关于前端:修改return-数据对构造函数创建对象的影响

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理