В MDN (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty), я увидел такой фрагмент:
var buz = {
fog: 'stack'
};
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
console.log('this is fog (' + name + ') for sure. Value: ' + buz[name]);
}
else {
console.log(name); // toString or something else
}
}
Во фрагменте console.log(name); // toString or something else
меня немного сбивает с толку. Я понимаю, что toString
является свойством Object.prototype
, и к этому свойству может получить доступ buz.toString
.
Однако, когда я запускал фрагмент в Chrome, я не видел, чтобы свойство toString
печаталось (console.log), хотя в комментариях говорится, что оно должно повторяться с помощью for..in
и печататься.
Есть ли у кого-нибудь идеи о том, почему свойства из прототипа не могут быть повторены с помощью «for..in»?
Object.prototype.toString
— это неперечислимое свойство. - person Bergi   schedule 11.11.2015