js中的new操作符原理

2022-06-21 18:54:08 字數 652 閱讀 7164

舉乙個很常見的例子

function

person(name)

person.prototype.say = function

()let p = new person("花花");

p.say();

//花花

為什麼會列印出「花花」?為什麼建構函式中的 this 就指向了 物件?

這就是 new 的原理起的作用:

1、建立乙個類的例項:建立乙個空物件obj,然後把這個 obj 物件的 __proto__ 設定為person.prototype;即建立乙個繼承自person.prototype的新物件

2、執行建構函式:執行的時候,相應的引數會被傳入,this 會被指定為第1步建立的新例項;

3、返回物件:如果建構函式返回了乙個新物件,那麼這個新物件會取代步驟1中new出來的例項被返回。如果建構函式沒有返回物件,那麼new出來的結果為步驟1建立的物件

new實現

function

new(person); //

第一步return

function

() }

JS中的new操作符

在js中定義乙個建構函式,然後用new操作符構造物件obj,js 如下。function base var obj new base console.log obj.name console.log obj.age new操作符具體都幹了什麼呢?其實很簡單,包括三步 1.var obj 2.obj....

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...