Статический метод Object.hasOwn в JavaScript
Object.hasOwn() является методом встроенного объекта Object в JavaScript. Данный метод позволяет проверить, содержит ли объект собственное свойство определенного имени.
Различия между Object.hasOwn() и hasOwnProperty заключаются в следующем:
Object.hasOwn()является статическим методом и принимает первым параметром объект, у которого проверяется наличие свойства, и вторым параметром имя свойства в виде строки.hasOwnProperty()является методом экземпляра объекта и используется для проверки наличия собственного свойства определенного объекта.
Пример использования метода Object.hasOwn():
const myObj = { name: 'John', age: 32 };
const hasNameProp = Object.hasOwn(myObj, 'name');
console.log(hasNameProp); // true
const hasHeightProp = Object.hasOwn(myObj, 'height');
console.log(hasHeightProp); // false
Результат выполнения данного кода будет выводить в консоль true, так как объект myObj содержит свойство с именем name. Второй вызов метода вернет false, так как никакого свойства с именем height в объекте не существует.
Пример использования метода hasOwnProperty():
const myObj = { name: 'John', age: 32 };
const hasNameProp = myObj.hasOwnProperty('name');
console.log(hasNameProp); // true
const hasHeightProp = myObj.hasOwnProperty('height');
console.log(hasHeightProp); // false
Как видно из примера, результаты использования hasOwnProperty() будут такие же, как и в случае с Object.hasOwn(). Однако важно учитывать, что метод hasOwnProperty() должен вызываться у конкретного объекта, тогда как Object.hasOwn() можно использовать независимо от типа переданного объекта.
hasOwn рекомендуется использовать вместо Object.prototype.hasOwnProperty(), поскольку это работает для объектов, созданных с помощью Object.create(null), и с объектами, которые переопределили унаследованный метод hasOwnProperty(). Хотя эти проблемы можно обойти, вызвав Object.prototype.hasOwnProperty() для внешнего объекта, Object.hasOwn() более интуитивно понятен.
открыть бот

