javascript中new操作符的原理

才智咖 人氣:2.73W

javascript中new操作符的原理

javascript中new操作符的原理

javascript中的new是一個語法糖,對於學過c++,java 和c#等物件導向語言的人來說,以為js裡面是有類和物件的'區別的,實現上js並沒有類,一切皆物件,比java還來的徹底

new的過程實際上是建立一個新物件,把新象的原型設定為構造器函式的原型,在使用new的過程中,一共有3個物件參與了協作,構造器函式是第一個物件,原型物件是二個,新生成了一個空物件是第三個物件,最終返回的是一個空物件,但這個空物件不是真空的,而是已經含有原型的引用(__proto__)

步驟如下:

(1) 建立一個空物件obj

(2) 讓空物件的__proto__(IE沒有該屬性)成員指向了建構函式的prototype成員物件

(3) 使用apply呼叫構造器函式,this繫結到空物件obj上。

(4) 返回空物件obj

可以自己寫個函式替代使用new也是完全可以的,示例程式碼如下:

function NEW_OBJECT(Foo){var obj={};obj.__proto__=otype;obj.__proto__tructor=Foo;y(obj,arguments)return obj;}

以上這篇淺談javascript中new操作符的原理就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援。

TAGS:操作符
最近更新