js中new的原理與實現

2021-09-28 15:35:35 字數 520 閱讀 9856

// 這裡使用es6的結構來獲取建構函式所需的引數

// 也可以使用arguments來獲取,不過es6中不這麼建議了,要用的話進行arguments[0]的提取與裁剪就可以了

function

new(fn,

...args)

// 構造空物件

fn.(obj, args)

// 建構函式賦值與this指向的修改

obj.__proto__ = fn.prototype // 對該物件賦值建構函式原型物件上的方法

return obj // 返回該例項

}function

person

(name)

person.prototype.

showname

=function()

var p1 =

new(person,

'張三'

) p1.

showname()

// 張三

JS中new的實現原理及重寫

提到new,肯定會和類和例項聯絡起來,如 function func let f new func 上面的 我們首先建立了乙個函式,如果是用物件導向的說法就是建立了乙個function類的例項,如果直接執行這個函式,那它就是乙個普通的函式,如果用new執行,則這個函式被稱為乙個自定義的類。如果是乙個...

new的實現原理

new的特點 new乙個建構函式,會自動return乙個例項物件 new完成的例項化物件,proto 自動指向建構函式的prototype new建構函式傳參自動賦值給當前例項化物件 防抖 在固定的時間內沒有觸發事件,會在固定時間結束後觸發,如果固定時間內觸發事件了,會在延長固定時間內觸發 節流 無...

js中的new操作符原理

舉乙個很常見的例子 function person name person.prototype.say function let p new person 花花 p.say 花花 為什麼會列印出 花花 為什麼建構函式中的 this 就指向了 物件?這就是 new 的原理起的作用 1 建立乙個類的例項...