部落格說明
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繫結在了新生成的物件中 ...