Свойство __proto__ — это геттер/сеттер
Подскажите,как понять, что __proto__ - это геттер и сеттер. obj.__proto__ вызывается соответствующий геттер/сеттер из прототипа obj. Какая механика этого процесса, никак не пойму этот принцип.
__proto__ - свойство, которое дает доступ к методам объекта прототипа, а как оно работает как аксессор в прототипе?
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
function check(obj) {
for (var x = obj; x; x = Object.getPrototypeOf(x)) {
var d = Object.getOwnPropertyDescriptor(x, "__proto__")
if (d) {
console.log(x === Object.prototype, d)
return
}
}
console.log("Not found")
}
check({})
check(Object.create(null))
check({ __proto__: {} })
check({ ["__proto__"]: {} })
check({ __proto__: null })
check({ get __proto__() { return 1 } })
check({ get __proto__() { return 1 }, set __proto__(v) {} })
.as-console-wrapper.as-console-wrapper { max-height: 100vh }