js原型鏈理解(求老哥們指點啊啊啊,有沒有毛病)

兩情迢迢發表於2019-01-24
  • 所有例項中都存在一個隱式原型物件:__proto__
  • 所有函式中都存在一個顯式原型物件:prototype
  • 當例項中查詢一個自身不存在的name屬性時,會在__proto__物件中去找(也就是建構函式的prototype物件中去找),如果找不到再去上一層的__proto__中去找,直到返回null

function Foo () {
    this.name = "老王"
}

let f1 = new Foo()
console.log(f1.age) // undefined 

Foo.prototype.age = 40
console.log(f1.age) // 40  例項本身沒有age屬性 會在自身的隱式原型物件__proto__中找(也就是父元素的prototype物件)

console.log(f1.sex) // undefined
Object.prototype.sex = '女'

console.log(f1.sex) // 女    如果自身的__proto__中也不存在,則會去自身的this.__proto__.__proto__物件中找,也就是Object.prototype中找 直至返回null

Foo._proto__ === Object.prototype // true


複製程式碼


相關文章