Właściwości obiektu JavaScript
Właściwości są najważniejszą częścią każdego obiektu JavaScript.
Właściwości JavaScript
Właściwości to wartości związane z obiektem JavaScript.
Obiekt JavaScript to zbiór nieuporządkowanych właściwości.
Właściwości można zwykle zmieniać, dodawać i usuwać, ale niektóre są tylko do odczytu.
Dostęp do właściwości JavaScript
Składnia dostępu do właściwości obiektu to:
objectName.property // person.age
lub
objectName["property"] // person["age"]
lub
objectName[expression] // x = "age"; person[x]
Wyrażenie musi być ocenione jako nazwa właściwości.
Przykład 1
person.firstname + " is " + person.age + " years old.";
Przykład 2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScript dla... w pętli
Instrukcja JavaScript for...in
przechodzi przez właściwości obiektu.
Składnia
for (let variable in object) {
// code to be executed
}
Blok kodu wewnątrz for...in
pętli zostanie wykonany raz dla każdej właściwości.
Przeglądanie właściwości obiektu:
Przykład
const person = {
fname:" John",
lname:" Doe",
age: 25
};
for (let x in person) {
txt += person[x];
}
Dodawanie nowych właściwości
Możesz dodać nowe właściwości do istniejącego obiektu, po prostu nadając mu wartość.
Załóżmy, że obiekt person już istnieje - możesz wtedy nadać mu nowe właściwości:
Przykład
person.nationality = "English";
Usuwanie właściwości
Słowo delete
kluczowe usuwa właściwość z obiektu:
Przykład
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
lub usuń osobę["wiek"];
Przykład
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
Słowo delete
kluczowe usuwa zarówno wartość właściwości, jak i samą właściwość.
Usuniętej właściwości nie można używać, dopóki nie zostanie ponownie dodana.
Operator
delete
jest przeznaczony do stosowania we właściwościach obiektów. Nie ma wpływu na zmienne ani funkcje.
Operator delete
nie powinien być używany na predefiniowanych właściwościach obiektu JavaScript. Może spowodować awarię Twojej aplikacji.
Obiekty zagnieżdżone
Wartości w obiekcie mogą być innym obiektem:
Przykład
myObj = {
name:"John",
age:30,
cars: {
car1:"Ford",
car2:"BMW",
car3:"Fiat"
}
}
Możesz uzyskać dostęp do zagnieżdżonych obiektów za pomocą notacji kropkowej lub notacji nawiasowej:
Przykład
myObj.cars.car2;
lub:
Przykład
myObj.cars["car2"];
lub:
Przykład
myObj["cars"]["car2"];
lub:
Przykład
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
Zagnieżdżone tablice i obiekty
Wartości w obiektach mogą być tablicami, a wartości w tablicach mogą być obiektami:
Przykład
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
Aby uzyskać dostęp do tablic wewnątrz tablic, użyj pętli for-in dla każdej tablicy:
Przykład
for (let i in myObj.cars) {
x += "<h1>" + myObj.cars[i].name
+ "</h1>";
for (let j in myObj.cars[i].models) {
x += myObj.cars[i].models[j];
}
}
Atrybuty nieruchomości
Wszystkie właściwości mają nazwę. Ponadto mają również wartość.
Wartość jest jednym z atrybutów właściwości.
Inne atrybuty to: przeliczalne, konfigurowalne i zapisywalne.
Te atrybuty określają, w jaki sposób można uzyskać dostęp do właściwości (czy można ją odczytać?, czy można ją zapisać?)
W JavaScript można odczytać wszystkie atrybuty, ale tylko atrybut wartości może zostać zmieniony (i tylko wtedy, gdy właściwość jest zapisywalna).
( ECMAScript 5 ma metody zarówno do pobierania, jak i ustawiania wszystkich atrybutów właściwości)
Właściwości prototypu
Obiekty JavaScript dziedziczą właściwości swojego prototypu.
Słowo delete
kluczowe nie usuwa właściwości dziedziczonych, ale jeśli usuniesz właściwość prototypu, wpłynie to na wszystkie obiekty odziedziczone z prototypu.