Метод hasOwnProperty() в JavaScript в этой статье. Метод hasOwnProperty() проверяет, принадлежит ли свойство объекта указанному объекту. Если свойство принадлежит именованному объекту, оно возвращает true
иначе false
.
Член объекта наследует hasOwnProperty()
. Эта функция используется, чтобы выяснить, имеет ли объект именованное свойство, которое напрямую связано с объектом.
Синтаксис hasOwnProperty() в JavaScript
obj.hasOwnProperty(property)
properties :
Передайте имя строки или символов, чтобы проверить, принадлежит ли она объекту.
Вот самые важные вещи, на которые следует обратить внимание: hasOwnProperty вернет true
, даже если вы установите значение null или неопределенное.
let a = new Object(); a.propertyOne = null; a.hasOwnProperty('propertyOne') // output: true a.propertyTwo = undefined; a.hasOwnProperty('propertyTwo') // output: true
Используйте hasOwnProperty(), чтобы проверить, существует ли свойство объекта:
var movie = { name: 'avenger endgame', genre: 'super hit', } var song = { name: 'Robert Downey Jr', } movie.hasOwnProperty('name'); // returns true movie.hasOwnProperty('type'); // returns false song.hasOwnProperty('name'); // returns true song.hasOwnProperty('status'); // returns false
Основное преимущество метода JavaScript hasOwnProperty(): его можно инициализировать для любого объекта, просто приняв строку в качестве аргумента. Он быстро возвращает true, если значение доступно для объекта, в противном случае возвращает false.
function Car(name) { this.name = name; } Car.prototype.color = 'red'; const bmw = new Car('x1'); console.log(bmw.name); // property found on object console.log(bmw.color); // color property found on prototype console.log(bmw.hasOwnProperty('name')); // name is found on the object itself console.log(bmw.hasOwnProperty('color')); // color property is not found on the object itself
В приведенном выше примере создается новый объект Car. Каждый автомобиль инициализируется в конструкторе своим именем. Однако цвет не упоминается в начале объекта. Однако доступно в иерархии выполнения прототипа, поэтому hasOwnProperty()
возвращает true для имени, но false для цвета.
hasOwnProperty() Прекрасно работает при переборе объекта. Теперь вы можете легко увидеть, принадлежат ли свойства объекта объекту, а не прототипу.
// declaring a Car function function Car(name) { this.name = name; } // setting up new prop with protoype Car.prototype.color = 'red'; // creating a new Car object const BMW = new Car('x1'); // looping through every car prop including prototype as well for (let car in BMW) { car + ':', BMW[car]; } /* outupt: name: x1 outupt: color: red */ /**************************************/ /*will loop through only self properties of the object, excludes property generated through prototype method */ for (let car in BMW) { if(BMW.hasOwnProperty(car)){ console.log(car + ':', BMW[car]); } } // output: name:
Я с нетерпением жду возможности поделиться вашими добрыми мыслями по поводу этой статьи.