Answer
t.me/js_testОтвет:
true, true, true, true, false, false
Объяснение:
Данный пример показывает разницу между оператором in и методом hasOwnProperty. Метод hasOwnProperty, в отличии от in, не видит поля объекта до которых можно дотянуться по цепочке прототипов(toString) и не видит геттеры и сеттеры.
Код:
const obj = {
objProp: 42,
};
class Foo {
get classProp() {
return 24;
}
}
const bar = new Foo();
console.log('objProp' in obj);
console.log('toString' in obj);
console.log('classProp' in bar);
console.log(obj.hasOwnProperty('objProp'));
console.log(obj.hasOwnProperty('toString'));
console.log(bar.hasOwnProperty('classProp'));