建立乙個空物件
把空物件的原型設為建構函式的原型
把建構函式的指標指向這個空物件並傳參
最後返回例項
function
likenew
(obj,
...args)
newobj.__proto__ = obj.prototype
//可將前兩步合併 let newobj = object.create(obj.prototype)
let result = obj.
(newobj,args)if(
typeof result ===
'object'
||typeof result ===
'function'
&& result !==
null
)return newobj
}
js中new操作符做了什麼?
看了好幾篇部落格終於弄懂了new操作符,寫得很相似,但有經過自己的思考的 function foo name,age console.log newfoo lxh 21 foo這是通過new直接建立出乙個物件,那麼new操作符是怎麼實現的呢?function objectfactory 3.拿到引數...
new操作符都做了什麼
var fun function var fun1 function var p1 new fun var p2 new fun1 p1.name jack p2.name peter為什麼p1和p2的name值不一樣,要從new操作符說起,在new的時候,程式做了以下四個建立步驟 建立乙個空物件 ...
new 操作符 都做了什麼
new操作符都做了什麼?建立了乙個新物件let target 繼承了函式的原型target.proto func.prototype 屬性和方法都加入到this 引用的物件中,並執行該函式 func.call target 如果該函式返回的是objectfunction就返回 function ne...