JavaScript下的new操做符作了什么?

能够参考知乎的一篇文章:https://zhuanlan.zhihu.com/p/23987456html

参考网上其余人的文章,new发生了如下操做函数

参考MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/newthis

当代码 new Foo(...) 执行时,会发生如下事情:prototype

  1. 一个继承自 Foo.prototype 的新对象被建立。
  2. 使用指定的参数调用构造函数 Foo ,并将 this 绑定到新建立的对象。new Foo 等同于 new Foo(),也就是没有指定参数列表,Foo 不带任何参数调用的状况。
  3. 由构造函数返回的对象就是 new 表达式的结果。若是构造函数没有显式返回一个对象,则使用步骤1建立的对象。(通常状况下,构造函数不返回值,可是用户能够选择主动返回对象,来覆盖正常的对象建立步骤)

参考博客园:http://www.javashuo.com/article/p-tvahjrik-ba.htmlcode

       (1) 建立一个新对象;
       (2) 将构造函数的做用域赋给新对象(所以 this 就指向了这个新对象) ;
       (3) 执行构造函数中的代码(为这个新对象添加属性) ;
       (4) 返回新对象。htm

简单总结如下:对象

       比较认同是一种语法糖的操做。作了四件事或者三件事:blog

       建立了一个新对象,而且将this指向它。而后执行构造函数的代码。最后返回它。继承

相关文章
相关标签/搜索