Mozilla документ hasOwnProperty говорит
Присвоение свойства внутри объекта приведет к тому, что отладчики будут отображать свойство как принадлежащее экземпляру объекта; но это не означает, что "hasOwnProperty" будет истинным. Когда свойство наследуется от прототипа, "hasOwnProperty()" имеет значение false, даже если у объекта есть собственная копия.
Для проверки я переопределил метод Object.prototype.toString() в новом объекте (o), как показано ниже:
o = new Object();
o.toString = function(){
console.log("ToString redefined");
}
Object.toString();
o.hasOwnProperty('toString');
AFAIU, переопределение toString() должно возвращать false, поскольку это унаследованное свойство, но оно возвращает true. Пожалуйста, объясните?
Кроме того, было бы здорово, если бы кто-нибудь мог объяснить следующее на примере:
Присвоение свойства внутри объекта приведет к тому, что отладчики будут отображать свойство как принадлежащее экземпляру объекта; но это не означает, что "hasOwnProperty" будет истинным.
спасибо приложение