Здравствуйте!
В книге Келли Симпсона -
" You dont know JS : this and Objects PROTOTYPES " в совсем короткой статье про затенение свойств имеющихся в прототипах наткнулся на фразу :
" если свойство foo находится выше по цепочке [[ Prototype ]] и является сеттером , то всегда будет вызываться сеттер . Свойство не будет добавлено в myObject , сеттер foo не будет переопределён!
var a = {z:20};
Object.defineProperty(a, "foo", {
get: function(){
return this.z
},
set: function(v){
this.z=v
}
});
a.foo=100;
var myObject = Object.create(a);
myObject.foo = 999;
console.log(a.foo); // 100
console.log(myObject.foo); // 999
console.log(myObject.hasOwnProperty("foo")); // false
console.log(a.foo); // 100
Вопрос! Если
foo
нет в теле
myObject
, при этом свойство
a
после всех манипуляций присутствует по прежнему со значением
100
в теле объекта
a
, то тогда куда записалось данное свойство
foo
?