Brug af hasOwnProperty() til at kontrollere objekt-egenskaber
Når man itererer gennem et objekts egenskaber ved hjælp af for...in-løkken, er det vigtigt at skelne mellem objektets egne egenskaber og egenskaber, der er arvet fra dets prototype.
I JavaScript kan nogle egenskaber dukke op under iteration, selvom de ikke er defineret direkte på objektet. Dette sker, fordi objekter kan arve egenskaber fra andre objekter.
Metoden hasOwnProperty() hjælper os med at sikre, at vi kun arbejder med de egenskaber, der tilhører objektet direkte.
Forståelse af hasOwnProperty()
Metoden hasOwnProperty() er en indbygget JavaScript-metode, der kontrollerer, om en egenskab findes direkte på et objekt. Den returnerer en boolesk værdi (true eller false).
Syntaks
object.hasOwnProperty(property)
object: objektet, du vil kontrollere;property: navnet på den egenskab, der skal søges efter.
Hvorfor hasOwnProperty() er nyttig
Overvej følgende eksempel:
12345678910const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
Selvom category ikke blev defineret direkte på exercise, vises den i løkken. Derfor er det nødvendigt med en ekstra kontrol.
Brug af hasOwnProperty() med for...in
Ved at kombinere for...in med hasOwnProperty() kan du sikkert iterere kun over objektets egne egenskaber.
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]}`); } }
Denne kontrol sikrer, at nedarvede egenskaber ignoreres, hvilket gør din kode mere forudsigelig og sikker.
1. Hvad er det primære formål med metoden hasOwnProperty()?
2. Hvilken type værdi returnerer metoden hasOwnProperty()?
3. Hvorfor er det vigtigt at kontrollere for egne egenskaber, når man bruger hasOwnProperty() sammen med for...in-løkken?
4. I koden nedenfor, hvad bliver logget, når der itereres gennem video-objektets egenskaber?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 2.27
Brug af hasOwnProperty() til at kontrollere objekt-egenskaber
Stryg for at vise menuen
Når man itererer gennem et objekts egenskaber ved hjælp af for...in-løkken, er det vigtigt at skelne mellem objektets egne egenskaber og egenskaber, der er arvet fra dets prototype.
I JavaScript kan nogle egenskaber dukke op under iteration, selvom de ikke er defineret direkte på objektet. Dette sker, fordi objekter kan arve egenskaber fra andre objekter.
Metoden hasOwnProperty() hjælper os med at sikre, at vi kun arbejder med de egenskaber, der tilhører objektet direkte.
Forståelse af hasOwnProperty()
Metoden hasOwnProperty() er en indbygget JavaScript-metode, der kontrollerer, om en egenskab findes direkte på et objekt. Den returnerer en boolesk værdi (true eller false).
Syntaks
object.hasOwnProperty(property)
object: objektet, du vil kontrollere;property: navnet på den egenskab, der skal søges efter.
Hvorfor hasOwnProperty() er nyttig
Overvej følgende eksempel:
12345678910const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
Selvom category ikke blev defineret direkte på exercise, vises den i løkken. Derfor er det nødvendigt med en ekstra kontrol.
Brug af hasOwnProperty() med for...in
Ved at kombinere for...in med hasOwnProperty() kan du sikkert iterere kun over objektets egne egenskaber.
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]}`); } }
Denne kontrol sikrer, at nedarvede egenskaber ignoreres, hvilket gør din kode mere forudsigelig og sikker.
1. Hvad er det primære formål med metoden hasOwnProperty()?
2. Hvilken type værdi returnerer metoden hasOwnProperty()?
3. Hvorfor er det vigtigt at kontrollere for egne egenskaber, når man bruger hasOwnProperty() sammen med for...in-løkken?
4. I koden nedenfor, hvad bliver logget, når der itereres gennem video-objektets egenskaber?
Tak for dine kommentarer!