實現new操作符

2021-09-23 01:38:54 字數 348 閱讀 3606

new操作符返回乙個物件,所以需要在函式內部返回乙個物件。

這個物件,也就是建構函式中的this,可以訪問到掛載在this上的任意屬性。

這個物件可以訪問到建構函式原型上的屬性,所以需要將物件與建構函式鏈結起來。

只有返回值是物件,才進行正常處理。

const create = (constructor, ...args) => ;

object.setprototypeof(obj, constructor.prototype);

return result instanceof object ? result : obj;

}

js 實現new操作符

new操作符做了什麼 建立乙個空的物件,即 空物件的原型指向建構函式的原型,即設定該物件的建構函式 讓this指向新建立的空物件,即新建立的物件作為this的上下文 判斷返回值的型別,如果是值型別就是返回新的建立物件,如果是引用型別就返回引用型別的物件。如果沒有返回物件型別object包括funct...

new操作符實現原理

new操作符實現原理 function news func 生成新物件 target.proto func.prototype 例項的 proto 指向原型,建構函式的prototype也指向原型 鏈結到原型 var res func.call target 把函式的this繫結在了新生成的物件中 ...

new操作符的實現原理

new操作符的實現原理就4條 新建乙個物件o,將o的 proto 屬性指向建構函式的原型屬性prototype繫結建構函式的執行上下文到o上,並執行建構函式得到返回值s 如果s是乙個物件,new 操作符返回的就是這個s物件 如果s不是乙個物件,new 操作符返回的就是o 下面我們來構造乙個new操作...