JS中以new情势建立对象的历程

JS的new操纵究竟干了些什么呢?我们一步一步来看。

比方我定义了一个function,并实行new操纵:

function Foo(){}
var foo = new Foo();

补补脑:
每个函数中都会有一个叫prototype的属性,范例是object,即一个援用对象。
每个对象中都会有一个叫__proto__的属性,范例野是object,也是一个援用对象。

起首,当JavaScript引擎实行new操纵时,会立时拓荒一个块内存,建立一个空对象(并将this指向这个对象)。

接着,实行组织函数Foo(),对这个空对象举行组织(组织函数里有什么属性和要领都逐一给这个空缺对象装配上去,这就是为什么它叫组织函数了)。

但是,给这个空对象添加了一个叫__proto__的属性,而且这个__proto__指向Foo()的prototype对象。换句话说,就是__proto__ = prototype;

    原文作者:Asrocky
    原文地址: https://segmentfault.com/a/1190000004102703
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞