美文网首页
new运算符的过程

new运算符的过程

作者: 灵魂治愈 | 来源:发表于2018-09-20 23:13 被阅读0次

使用new命令时,它后面的函数依次执行下面的步骤。

1、创建一个空对象,作为将要返回的对象实例。
2、将这个空对象的原型,指向构造函数的prototype属性。
3、将这个空对象赋值给函数内部的this关键字。
4、开始执行构造函数内部的代码。

function Person(name,age){
    let obj={};
    obj.__proto__=Person.prototype;
    this=obj;
    this.name=name;
    this.age=age;
    return this;
}

也就是说,构造函数内部,this指的是一个新生成的空对象,所有针对this的操作,都会发生在这个空对象上。构造函数之所以叫“构造函数”,就是说这个函数的目的,就是操作一个空对象(即this对象),将其“构造”为需要的样子。

如果构造函数内部有return语句,而且return后面跟着一个对象,new命令会返回return语句指定的对象;否则,就会不管return语句,返回this对象。

相关文章

  • js中new操作符做了什么并实现自己的new操作符

    我们通过new运算符的使用,来探寻new操作符在执行的过程中究竟做了哪些操作,并且根据操作实现自己的new运算符。...

  • new运算符的过程

    使用new命令时,它后面的函数依次执行下面的步骤。 1、创建一个空对象,作为将要返回的对象实例。2、将这个空对象的...

  • 构造对象

    new new运算符接受一个函数F及其参数:new F(arguements...)。这一过程分成三步: 创建类的...

  • new的过程

    new的过程 借用 MDN 对 new 的说明 new 运算符创建一个用户定义的对象类型(当构造函数有返回值时)的...

  • 第四章 对象和数组

    Object类型 创建方法有两种,字面量和new运算符 1. 使用new运算符 let obj = new Obj...

  • 《C++Primer》第十九章

    第十九章 特殊工具与技术 控制内存分配 1. 重载new和delete 重载这两个运算符与重载其他运算符的过程大不...

  • 原型和原型链

    一、new 和 构造函数 1.1 new 运算符 new 运算符用来创建一个新的对象,其后面需紧跟一个函数,该函数...

  • new.target

    new.target属性允许检测函数或构造方法是否是通过new运算符被调用的。通过new运算符被初始化的函数或构造...

  • instanceof 运算符 和 new运算符

    1. new运算符 new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。 更多new知识请...

  • new 和 delete

    new和delete运算符是用于动态分配和撤销内存的运算符。搭配使用。(堆) 1)new int; //开辟一个...

网友评论

      本文标题:new运算符的过程

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