var func=function
();
var func=new func ();
new共經過了4個階段
1、建立乙個空物件
var obj=new
object();
2、設定原型鏈
obj.__proto__=func.prototype;
3、讓func中的this指向obj,並執行func的函式體。
var result =func.call(obj);
4、判斷func的返回值型別:
如果是值型別,返回obj。如果是引用型別,就返回這個引用型別的物件。
if (typeof(result) == "object")
else
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...
js中new操作符做了什麼?
看了好幾篇部落格終於弄懂了new操作符,寫得很相似,但有經過自己的思考的 function foo name,age console.log newfoo lxh 21 foo這是通過new直接建立出乙個物件,那麼new操作符是怎麼實現的呢?function objectfactory 3.拿到引數...