在JS中,new关键字做了什么

1. 先看代码

   function Person(){
    
    
        this.name = '朱小明';
        this.fn = function(){
    
    
            console.log('名字是:' + this.name)
        }
    }

    let person1 = new Person();
    // person1 拥有Person的属性和方法
    person1.fn()
  • 在这段代码里,通过new关键字创建了一个实例 person1
  • person1 继承了Person的所有属性和方法

2. 内部具体实现如下

// 1. 创建一个空对象
let obj = new Object(); // Object => 基类

// 2.设置它的原型链
obj._proto_ = Person.prototype;

// 3. 改变this指向
let result = Person.call(obj)

// 4.判断返回值类型
if(typeof (result) == "object"){
    
    
    person1 = result
}else{
    
    
    person1 = obj;
}

1. 希望本文能对大家有所帮助,如有错误,敬请指出

2. 原创不易,还请各位客官动动发财的小手支持一波(关注、评论、点赞、收藏)
3. 拜谢各位!后续将继续奉献优质好文
4. 如果存在疑问,可以私信我

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35942348/article/details/119461654