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

new操作符具体干了什么

作者: 奔跑的丸子129 | 来源:发表于2019-02-14 10:52 被阅读0次

如下代码,通过构造函数创建实例对象:

function Func(){
}
let func= new Func();

new 共经过了4个阶段:
1.创建一个空对象

let obj = new Object();

2.链接到原型

把 obj 的proto 指向构造函数Func的原型对象 prototype,此时便建立了 obj 对象的原型链:
obj->Func.prototype->Object.prototype->null
代码为:

obj.__proto__ = Func.prototype;

3.绑定this值(让Func中的this指向obj,并执行Func的函数体。)

let result = Func.call(obj);

4.返回新对象
(判断Func的返回值类型:
如果无返回值 或者 返回一个非对象值,则将 obj 作为新对象返回;否则会将 result 作为新对象返回。)

if (typeof(result) == "object"){
  func=result;
}
else{
    func=obj;
}

相关文章

  • new 对象 class

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

  • 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 操作符具体干了什么呢?

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

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

    文件路径:http://bbs.daxiangclass.com/?thread-264.htm 1. 创建一个空...

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

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

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

    Javascript的new关键字主要的作用是继承 new一共经历4个阶段 1、创建一个空对象 2、设置原型链 此...

网友评论

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

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