this指向建構函式原型鏈改變指向關係變動

2021-10-02 04:58:53 字數 436 閱讀 4802

輸出下面幾個方法得到結果

function foo() 

this.a=function()

}foo.prototype.a=function()

foo.a=function()

foo.a()//4

let obj=new foo()

obj.a()//2

foo.a()//1

解析

1.宣告的乙個函式foo 

2.函式foo原型鏈上掛載乙個函式a

3.foo增加鍵值對方法a

4.foo.a() 實則是增加的方法  輸出4

5.建構函式宣告乙個新foo 同時執行此函式

foo.a被重新賦值 this.a foo傳入新物件改變this 輸出2

foo.a()再次呼叫 為新賦值後的方法 輸出1

原型指向的改變

例項物件的原型 proto 和建構函式的原型prototype指向是相同的 例項物件中的 proto 原型指向的是建構函式中的原型prototype 原型鏈 是一種關係,例項物件和原型物件之間的關係,關係是通過原型 proto 來聯絡的 人的建構函式 function person age 人的原型...

javascript原型和原型鏈,建構函式和例項

原型 建構函式 就是工廠,原型的例項就是工廠按照圖紙生成的工具 比如汽車 原型鏈 隱式的 就是生成的工具所具有的功能,而功能是工具的屬性,生成什麼樣的工具是由工廠 建構函式 決定的,圖紙是有工廠和客戶共同決定的 var ca ctory function options this.stop func...

js的原型 原型鏈 建構函式

js裡一切皆物件。有js自己內部的物件,還有使用者自定義的物件。所有的物件都是從原型上衍生出來的。原型本身也是物件,原型鏈的最高層就是object。兩個重要的屬性 prototype,proto 所有的物件都有 proto 屬性,通過.proto 一層一層,最後到達object,object的 pr...