Bruk av hasOwnProperty() for å Kontrollere Objektets Egenskaper
Når du itererer gjennom egenskapene til et objekt ved hjelp av for...in-løkka, er det viktig å skille mellom objektets egne egenskaper og egenskaper arvet fra dets prototype.
I JavaScript kan noen egenskaper dukke opp under iterasjon selv om de ikke er definert direkte på objektet. Dette skjer fordi objekter kan arve egenskaper fra andre objekter.
Metoden hasOwnProperty() hjelper oss å sikre at vi kun arbeider med egenskapene som tilhører objektet direkte.
Forstå hasOwnProperty()
Metoden hasOwnProperty() er en innebygd JavaScript-metode som sjekker om en egenskap eksisterer direkte på et objekt. Den returnerer en boolsk verdi (true eller false).
Syntaks
object.hasOwnProperty(property)
object: objektet du vil sjekke;property: navnet på egenskapen du leter etter.
Hvorfor hasOwnProperty() er nyttig
Vurder følgende eksempel:
12345678910const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
Selv om category ikke ble definert direkte på exercise, vises den i løkken. Dette er grunnen til at vi trenger en ekstra sjekk.
Bruke hasOwnProperty() med for...in
Ved å kombinere for...in med hasOwnProperty(), kan du trygt iterere kun over objektets egne egenskaper.
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 sjekken sikrer at arvede egenskaper ignoreres, noe som gjør koden din mer forutsigbar og tryggere.
1. Hva er hovedformålet med metoden hasOwnProperty()?
2. Hvilken type verdi returnerer metoden hasOwnProperty()?
3. Hvorfor er det viktig å sjekke for egne egenskaper når man bruker hasOwnProperty() sammen med for...in-løkke?
4. I koden under, hva vil bli logget når man itererer gjennom egenskapene til objektet video?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 2.27
Bruk av hasOwnProperty() for å Kontrollere Objektets Egenskaper
Sveip for å vise menyen
Når du itererer gjennom egenskapene til et objekt ved hjelp av for...in-løkka, er det viktig å skille mellom objektets egne egenskaper og egenskaper arvet fra dets prototype.
I JavaScript kan noen egenskaper dukke opp under iterasjon selv om de ikke er definert direkte på objektet. Dette skjer fordi objekter kan arve egenskaper fra andre objekter.
Metoden hasOwnProperty() hjelper oss å sikre at vi kun arbeider med egenskapene som tilhører objektet direkte.
Forstå hasOwnProperty()
Metoden hasOwnProperty() er en innebygd JavaScript-metode som sjekker om en egenskap eksisterer direkte på et objekt. Den returnerer en boolsk verdi (true eller false).
Syntaks
object.hasOwnProperty(property)
object: objektet du vil sjekke;property: navnet på egenskapen du leter etter.
Hvorfor hasOwnProperty() er nyttig
Vurder følgende eksempel:
12345678910const baseExercise = { category: "Strength", }; const exercise = Object.create(baseExercise); exercise.name = "Deadlift"; for (let key in exercise) { console.log(key); }
Selv om category ikke ble definert direkte på exercise, vises den i løkken. Dette er grunnen til at vi trenger en ekstra sjekk.
Bruke hasOwnProperty() med for...in
Ved å kombinere for...in med hasOwnProperty(), kan du trygt iterere kun over objektets egne egenskaper.
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 sjekken sikrer at arvede egenskaper ignoreres, noe som gjør koden din mer forutsigbar og tryggere.
1. Hva er hovedformålet med metoden hasOwnProperty()?
2. Hvilken type verdi returnerer metoden hasOwnProperty()?
3. Hvorfor er det viktig å sjekke for egne egenskaper når man bruker hasOwnProperty() sammen med for...in-løkke?
4. I koden under, hva vil bli logget når man itererer gjennom egenskapene til objektet video?
Takk for tilbakemeldingene dine!