前端面試 new操作符的原理解析

2022-09-15 08:33:10 字數 864 閱讀 6502

部落格說明

new例項

j**ascript中new操作符用於建立乙個給定建構函式的物件例項

function person(name, age)

const res = new person('tom', 20)

console.log(res) // person

原型,建構函式,例項的關係

因此看得出三者的關係

例項.__proto__===原型

原型.constructor === 建構函式

建構函式.prototype === 原型

例項.constructor === 建構函式

new操作符實現原理
function mynew(constrc, ...args) ; // 1. 建立乙個空物件

obj.__proto__ = constrc.prototype; // 2. 將obj的[[prototype]]屬性指向建構函式的原型物件

return result instanceof object ? result : obj; //4. 如果建構函式返回的是物件,則使用建構函式執行的結果。否則,返回新建立的物件

}// 使用的例子:

function person(name, age)

const res = mynew(person, 'tom', 20)

console.log(res) // person

感謝

以及勤勞的自己,個人部落格,github

JS中的new操作符原理解析

你越是認真生活,你的生活就會越美好 弗蘭克 勞埃德 萊特 人生果實 經典語錄 var person function name person.prototype.sayhello function var p1 newperson hong console.log p1.name hong p1.s...

JS中的new操作符原理解析

1 var person function name 4 person.prototype.sayhello function 7 var p1 new person hanmei 8 p1.sayhello 1.建立乙個類的例項 建立乙個空物件obj,然後把這個空物件的 proto 設定為pers...

new操作符實現原理

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