猿问

原型继承属性遮蔽

对于 Property Shadowing,我对它到底是什么感到有点困惑。这是否意味着如果存在内部属性,则不会反映原型?


let foo = function() {

    this.word = "HI!";

}


foo.prototype.word = function() {

     return "123456";

}


let test = new foo();


// does this return "HI!" rather than "123456" because `word` exists as an 

// internal property and that takes importance vs. the prototype?


test.word;  // "HI!";


至尊宝的传说
浏览 86回答 1
1回答

叮当猫咪

我假设最后一行是 test.word 值的指示,而不是实际将 test.word 设置为“HI”。是的,您完全正确地this.word = "HI!"将词属性定义为 foo 对象的自有属性,而在 foo 的原型上定义词函数意味着它是一个可继承的属性。自己的属性比继承的属性具有更高的优先级。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答