美文网首页
new 操作符干了什么

new 操作符干了什么

作者: 元气满满321 | 来源:发表于2017-06-12 15:34 被阅读4199次

给个例子看看

   function Person1(name){
        this.name = name;
    }
    function Person2(name){
        this.name = name;
        return this.name;
    }
    function Person3(name){
        this.name = name;
        return new String(name);
    }
    function Person4 (name){
        this.name = name;
        return function () {
        }
    }
    function Person5(name){
        this.name = name;
        return new Array();
    }
    const person1 = new Person1("yuer");//Person1 {name: "yuer"}

    const person2 = new Person2("yuer");//Person2 {name: "yuer"}

    const person3 = new Person3("yuer");//String {0: "y", 1: "u", 2: "e", 3: "r", length: 4, [[PrimitiveValue]]: "yuer"}

    const person4 = new Person4("yuer");//function() {}

    const person5 = new Person5("yuer");//[]

这里给出了5个例子,其实new操作符干了以下三步:
1.先创建了一个新的空对象
2.然后让这个空对象的__proto__指向函数的原型prototype
3.将对象作为函数的this传进去,如果return 出来东西是对象的话就直接返回 return 的内容,没有的话就返回创建的这个对象

对应伪代码:
对于const a = new Foo();,new干了以下事情

const o = new Object();//创建了一个新的空对象o
o.__proto__ = Foo.prototype;//让这个o对象的` __proto__`指向函数的原型`prototype`
Foo.call(o);//this指向o对象
a = o;//将o对象赋给a对象

每天都努力一点点
谢谢你看完


相关文章

  • new 对象 class

    new 操作符具体干了什么? 当我们new一个数据的时候,new操作符到底做了什么? 首先是创建实例对象{},th...

  • new 操作符干了什么

    给个例子看看 这里给出了5个例子,其实new操作符干了以下三步:1.先创建了一个新的空对象2.然后让这个空对象的_...

  • new操作符干了什么?

    我们可以一起通过代码实现来看看new关键字到底做了一些什么事情 输出结果如下图: 上例中,new关键字调用的构造函...

  • 关键字new

    关于new操作符,我们最常看到的代码像这样: new操作符具体干了什么呢?我们可以用代码模拟它的行为。 创建了一个...

  • 前端常见面试题(十三)

    目录: 1,new操作符干了什么? 2,null和undefined的区别? 3,eval是做什么的? 4,什么是...

  • new操作符具体干了什么

    1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 2、属性和方法被加入到 this ...

  • new操作符具体干了什么?

    创建一个空对象 this指向该新创建的对象 该对象的隐式原型指向函数的原型(prototype属性) 属性和方法被...

  • new操作符具体干了什么

    如下代码,通过构造函数创建实例对象: new 共经过了4个阶段:1.创建一个空对象 2.链接到原型 把 obj 的...

  • new 操作符具体干了什么

    MDN 上描述如下: 创建一个空的简单Javascript对象 (即{ })2. 链接该对象(设置该对象的cons...

  • 前端面试问题

    八月九号 1、new 操作符具体干了什么呢? http://bbs.daxiangclass.com/?threa...

网友评论

      本文标题:new 操作符干了什么

      本文链接:https://www.haomeiwen.com/subject/hjplqxtx.html