Objekte
## Objektliterale
let person = {
name: "John Baker",
age: 23,
"exam rsults": [5,5, 5.0, 5.0, 6.0, 4.5]
}
Zugriff
console.log(person.name)
console.log(person["exam results"])
Zugriff auf nicht vorhandenes Attribut liefert "undefined"
Optional
console.log(person.age.month) // TypeError
console.log(person.age?.month) // undefined
Erweitern
person.lastname = "Rüdiger"
Entfernen
let obj = {
message: "ready",
ready: true,
tasks: 3
}
delete obj.message
Attribute in Objekt
let obj = {
message: "ready",
ready: true,
tasks: 3
}
"message" in obj // true
Methoden
let cat = {
type = "cat",
sayHello: () => "Meow"
}
cat.sayHello() // Meow
## Interner Zugriff
let cat = {
type = "cat",
sayHello() { "Meow from " + this.type }
}
- Pfeilnotation funktioniert nicht
## Analyse
Keys
let obj = {a:1, b: 2}
Object.keys(obj)
Values
let obj = {a:1, b: 2}
Object.values(obj)
Zusammenführen
let obj1 = {a:1, b: 2}
let obj2 = {c:1, d: 2}
let obj3 = {e:1, f: 2}
Object.assign(obj1, obj2)
Object.assign(obj1, obj2, obj3)
let objCopy = Object.assign({}, obj1)
objCopy == obj1 // false
Spread Syntax
let obj1 = {a:1, b: 2}
let obj2 = {c:1, d: 2}
{...obj1, ...obj2, f:4}
Objekte Destrukturieren
let obj = {a:1, b: 2}
let {a, b} = obj
console.log(a) //1