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" будет истинным.
спасибо приложение