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

Posted 欧阳呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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. 如果存在疑问,可以私信我

以上是关于在JS中,new关键字做了什么的主要内容,如果未能解决你的问题,请参考以下文章

前端经典面试题解密:JS的new关键字都干了什么?

前端经典面试题解密:JS的new关键字都干了什么?

new关键字对构造函数做了什么

js 在new一个对象的时候到底做了什么

js中的new()到底做了些什么??

js 中 new 与 Object.create()的区别