js中的new 到底做了些什麼??

2021-10-03 16:38:36 字數 512 閱讀 7581

new在執行時會做四件事情

new會在記憶體中建立乙個新的空物件

new 會讓this指向這個新的物件

執行建構函式  目的:給這個新物件加屬性和方法

new會返回這個新物件

基於上面的講解,我們執行如下**:

var obj = new base();
new操作符具體幹了什麼呢?其實很簡單,就幹了三件事情。

var obj  = {};

obj.__proto__ = base.prototype;

base.call(obj);

第一行,我們建立了乙個空物件obj

第二行,我們將這個空物件的__proto__成員指向了base函式物件prototype成員物件

第三行,我們將base函式物件的this指標替換成obj,然後再呼叫base函式,於是我們就給obj物件賦值了乙個id成員變數,這個成員變數的值是」base」。

js中new操作符做了什麼?

看了好幾篇部落格終於弄懂了new操作符,寫得很相似,但有經過自己的思考的 function foo name,age console.log newfoo lxh 21 foo這是通過new直接建立出乙個物件,那麼new操作符是怎麼實現的呢?function objectfactory 3.拿到引數...

new的過程中做了什麼

new過程自定義實現 一目了然了,1.首先以原型copy乙個新物件,這是拿到類上的公共屬性和方法,object.create 這個方法是建立乙個物件a,傳入乙個物件b作為這個建立的物件a的原型 那麼這個物件a是作為乙個空白的原型物件給子類的,作為子類的原型,這個物件a的 proto 指向父類原型,因...

js的new操作符具體做了什麼

建立乙個空物件 把空物件的原型設為建構函式的原型 把建構函式的指標指向這個空物件並傳參 最後返回例項 function likenew obj,args newobj.proto obj.prototype 可將前兩步合併 let newobj object.create obj.prototype...