Ні разу цей метод не використовували в реальних проектах, але на співбесідах питають, тому погнали розбиратись.
Сподіваємось, ви знайомі з циклом
for ... in, який проходиться по всіх властивостях за довільною послідовністю. Наприклад:
const human = {
eat: true
};
const programmer = {
sleep: false,
__proto__: human
};
for (const key in programmer) {
alert(key); // виведе і "eat", і "sleep"
}
Але іноді хочеться подивитися, що знаходиться в самому об'єкті, а не в його прототипі.
Виклик
obj.hasOwnProperty(prop) повертає true, якщо властивість prop належить самому об'єкту obj, інакше false. Наприклад:
const human = {
eat: true
};
const programmer = {
sleep: false,
__proto__: human
};
alert(programmer.hasOwnProperty('sleep')); // true: sleep належить до programmer
alert(programmer.hasOwnProperty('eat')); // false: eat не належить
#interview