Они оба являются приемлемыми шаблонами «хорошей практики». Один лучше понять, но его легче запутать, другой короче, но труднее читать.
виле эслинтохранник-для-в использоватьfor in
прямо неверно. Хорошая практика
for (key in foo) {
if (Object.prototype.hasOwnProperty.call(foo, key)) {
doSomething(key);
}
if ({}.hasOwnProperty.call(foo, key)) {
doSomething(key);
}
}
Мой вопрос когдаObject.prototype.hasOwnProperty.call(foo, key)
а также{}.hasOwnProperty.call(foo, key)
приведет другой результат? Кто-нибудь может показать конкретный пример?