Використання hasOwnProperty() для Перевірки Властивостей Об'єкта
Свайпніть щоб показати меню
Під час ітерації властивостями об'єкта за допомогою циклу for...in важливо розрізняти власні властивості об'єкта та властивості, успадковані від його прототипу.
У JavaScript деякі властивості можуть з'являтися під час ітерації, навіть якщо вони не були визначені безпосередньо в об'єкті. Це відбувається тому, що об'єкти можуть успадковувати властивості від інших об'єктів.
Метод hasOwnProperty() допомагає переконатися, що ми працюємо лише з тими властивостями, які належать безпосередньо об'єкту.
Розуміння hasOwnProperty()
Метод hasOwnProperty() — це вбудований метод JavaScript, який перевіряє, чи існує властивість безпосередньо в об'єкті. Він повертає булеве значення (true або false).
Синтаксис
object.hasOwnProperty(property)
object: об'єкт, який потрібно перевірити;property: назва властивості, яку потрібно знайти.
Чому hasOwnProperty() є корисним
Розглянемо наступний приклад:
12345678910const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
Хоча category не була визначена безпосередньо в exercise, вона з'являється у циклі. Саме тому потрібна додаткова перевірка.
Використання hasOwnProperty() з for...in
Комбінуючи for...in з hasOwnProperty(), можна безпечно ітерувати лише власні властивості об'єкта.
12345678910111213const exercise = { name: "Deadlift", primaryMusclesWorked: "Erector spinae", equipment: "Barbell", exerciseType: "Strength", difficulty: "Intermediate", }; for (let key in exercise) { if (exercise.hasOwnProperty(key)) { console.log(`Property: ${key}, Value: ${exercise[key]}`); } }
Ця перевірка гарантує, що успадковані властивості ігноруються, роблячи ваш код більш передбачуваним і безпечним.
1. Яке основне призначення методу hasOwnProperty()?
2. Яке значення повертає метод hasOwnProperty()?
3. Чому важливо перевіряти власні властивості за допомогою hasOwnProperty() у циклі for...in?
4. Що буде виведено при ітерації властивостями об'єкта video у наведеному коді?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат