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