Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda hasOwnProperty() för att Kontrollera Objektets Egenskaper | Avancerade Tekniker för Objektmanipulation
Javascript Datastrukturer

bookAnvända hasOwnProperty() för att Kontrollera Objektets Egenskaper

När du itererar genom ett objekts egenskaper med hjälp av for...in-loopen är det viktigt att skilja mellan objektets egna egenskaper och egenskaper som ärvs från dess prototyp.

I JavaScript kan vissa egenskaper visas under iteration även om de inte är definierade direkt på objektet. Detta sker eftersom objekt kan ärva egenskaper från andra objekt.

Metoden hasOwnProperty() hjälper oss att säkerställa att vi endast arbetar med de egenskaper som tillhör objektet direkt.

Förstå hasOwnProperty()

Metoden hasOwnProperty() är en inbyggd JavaScript-metod som kontrollerar om en egenskap finns direkt på ett objekt. Den returnerar ett Boolean-värde (true eller false).

Syntax

object.hasOwnProperty(property)
  • object: objektet du vill kontrollera;
  • property: namnet på egenskapen du söker efter.

Varför hasOwnProperty() är användbar

Tänk på följande exempel:

12345678910
const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
copy

Även om category inte definierades direkt på exercise, visas det i loopen. Därför behövs en ytterligare kontroll.

Använda hasOwnProperty() med for...in

Genom att kombinera for...in med hasOwnProperty() kan du säkert iterera endast över objektets egna egenskaper.

12345678910111213
const 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]}`); } }
copy

Denna kontroll säkerställer att ärvda egenskaper ignoreras, vilket gör din kod mer förutsägbar och säker.

1. Vad är det primära syftet med metoden hasOwnProperty()?

2. Vilken typ av värde returnerar metoden hasOwnProperty()?

3. Varför är det viktigt att kontrollera egna egenskaper med hasOwnProperty() i en for...in-loop?

4. Vad kommer att loggas när man itererar genom video-objektets egenskaper i koden nedan?

question mark

Vad är det primära syftet med metoden hasOwnProperty()?

Select the correct answer

question mark

Vilken typ av värde returnerar metoden hasOwnProperty()?

Select the correct answer

question mark

Varför är det viktigt att kontrollera egna egenskaper med hasOwnProperty() i en for...in-loop?

Select the correct answer

question mark

Vad kommer att loggas när man itererar genom video-objektets egenskaper i koden nedan?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookAnvända hasOwnProperty() för att Kontrollera Objektets Egenskaper

Svep för att visa menyn

När du itererar genom ett objekts egenskaper med hjälp av for...in-loopen är det viktigt att skilja mellan objektets egna egenskaper och egenskaper som ärvs från dess prototyp.

I JavaScript kan vissa egenskaper visas under iteration även om de inte är definierade direkt på objektet. Detta sker eftersom objekt kan ärva egenskaper från andra objekt.

Metoden hasOwnProperty() hjälper oss att säkerställa att vi endast arbetar med de egenskaper som tillhör objektet direkt.

Förstå hasOwnProperty()

Metoden hasOwnProperty() är en inbyggd JavaScript-metod som kontrollerar om en egenskap finns direkt på ett objekt. Den returnerar ett Boolean-värde (true eller false).

Syntax

object.hasOwnProperty(property)
  • object: objektet du vill kontrollera;
  • property: namnet på egenskapen du söker efter.

Varför hasOwnProperty() är användbar

Tänk på följande exempel:

12345678910
const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
copy

Även om category inte definierades direkt på exercise, visas det i loopen. Därför behövs en ytterligare kontroll.

Använda hasOwnProperty() med for...in

Genom att kombinera for...in med hasOwnProperty() kan du säkert iterera endast över objektets egna egenskaper.

12345678910111213
const 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]}`); } }
copy

Denna kontroll säkerställer att ärvda egenskaper ignoreras, vilket gör din kod mer förutsägbar och säker.

1. Vad är det primära syftet med metoden hasOwnProperty()?

2. Vilken typ av värde returnerar metoden hasOwnProperty()?

3. Varför är det viktigt att kontrollera egna egenskaper med hasOwnProperty() i en for...in-loop?

4. Vad kommer att loggas när man itererar genom video-objektets egenskaper i koden nedan?

question mark

Vad är det primära syftet med metoden hasOwnProperty()?

Select the correct answer

question mark

Vilken typ av värde returnerar metoden hasOwnProperty()?

Select the correct answer

question mark

Varför är det viktigt att kontrollera egna egenskaper med hasOwnProperty() i en for...in-loop?

Select the correct answer

question mark

Vad kommer att loggas när man itererar genom video-objektets egenskaper i koden nedan?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt