คุณสมบัติอ็อบเจ็กต์ JavaScript
คุณสมบัติเป็นส่วนที่สำคัญที่สุดของวัตถุ JavaScript
คุณสมบัติจาวาสคริปต์
คุณสมบัติเป็นค่าที่เกี่ยวข้องกับวัตถุ JavaScript
วัตถุ JavaScript คือชุดของคุณสมบัติที่ไม่เรียงลำดับ
คุณสมบัติมักจะสามารถเปลี่ยนแปลง เพิ่ม และลบได้ แต่คุณสมบัติบางอย่างเป็นแบบอ่านอย่างเดียว
การเข้าถึงคุณสมบัติ JavaScript
ไวยากรณ์สำหรับการเข้าถึงคุณสมบัติของวัตถุคือ:
objectName.property // person.age
หรือ
objectName["property"] // person["age"]
หรือ
objectName[expression] // x = "age"; person[x]
นิพจน์ต้องประเมินเป็นชื่อคุณสมบัติ
ตัวอย่าง 1
person.firstname + " is " + person.age + " years old.";
ตัวอย่าง 2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScript สำหรับ...ในลูป
คำสั่ง JavaScript for...in
วนซ้ำคุณสมบัติของวัตถุ
ไวยากรณ์
for (let variable in object) {
// code to be executed
}
บล็อกของรหัสภายในfor...in
ลูปจะดำเนินการเพียงครั้งเดียวสำหรับแต่ละคุณสมบัติ
วนรอบคุณสมบัติของวัตถุ:
ตัวอย่าง
const person = {
fname:" John",
lname:" Doe",
age: 25
};
for (let x in person) {
txt += person[x];
}
การเพิ่มคุณสมบัติใหม่
คุณสามารถเพิ่มคุณสมบัติใหม่ให้กับวัตถุที่มีอยู่ได้โดยเพียงแค่ให้ค่าแก่วัตถุนั้น
สมมติว่าวัตถุบุคคลมีอยู่แล้ว - จากนั้นคุณสามารถให้คุณสมบัติใหม่แก่วัตถุได้:
ตัวอย่าง
person.nationality = "English";
การลบคุณสมบัติ
คำdelete
หลักลบคุณสมบัติออกจากวัตถุ:
ตัวอย่าง
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
หรือลบบุคคล["อายุ"];
ตัวอย่าง
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
คีย์เวิร์ดจะลบ ทั้งdelete
ค่าของพร็อพเพอร์ตี้และพร็อพเพอร์ตี้เอง
หลังจากลบแล้ว จะไม่สามารถใช้คุณสมบัตินี้ก่อนที่จะเพิ่มกลับเข้าไปใหม่อีกครั้ง
โอ
delete
เปอเรเตอร์ได้รับการออกแบบเพื่อใช้กับคุณสมบัติของอ็อบเจ็กต์ ไม่มีผลกับตัวแปรหรือฟังก์ชัน
delete
ไม่ควรใช้ตัวดำเนินการกับคุณสมบัติของวัตถุ JavaScript ที่กำหนดไว้ล่วงหน้า อาจทำให้แอปพลิเคชันของคุณขัดข้อง
ซ้อนวัตถุ
ค่าในวัตถุสามารถเป็นวัตถุอื่นได้:
ตัวอย่าง
myObj = {
name:"John",
age:30,
cars: {
car1:"Ford",
car2:"BMW",
car3:"Fiat"
}
}
คุณสามารถเข้าถึงวัตถุที่ซ้อนกันโดยใช้เครื่องหมายจุดหรือเครื่องหมายวงเล็บ:
ตัวอย่าง
myObj.cars.car2;
หรือ:
ตัวอย่าง
myObj.cars["car2"];
หรือ:
ตัวอย่าง
myObj["cars"]["car2"];
หรือ:
ตัวอย่าง
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
อาร์เรย์และอ็อบเจ็กต์ที่ซ้อนกัน
ค่าในวัตถุสามารถเป็นอาร์เรย์ และค่าในอาร์เรย์สามารถเป็นวัตถุได้:
ตัวอย่าง
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
ในการเข้าถึงอาร์เรย์ภายในอาร์เรย์ ให้ใช้ for-in loop สำหรับแต่ละอาร์เรย์:
ตัวอย่าง
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];
}
}
คุณสมบัติคุณสมบัติ
คุณสมบัติทั้งหมดมีชื่อ นอกจากนี้พวกเขายังมีค่า
ค่าเป็นหนึ่งในคุณสมบัติของคุณสมบัติ
คุณลักษณะอื่นๆ ได้แก่ นับได้ กำหนดค่าได้ และเขียนได้
คุณลักษณะเหล่านี้กำหนดวิธีการเข้าถึงคุณสมบัติ (สามารถอ่านได้หรือไม่ เขียนได้หรือไม่)
ใน JavaScript สามารถอ่านแอตทริบิวต์ทั้งหมดได้ แต่สามารถเปลี่ยนได้เฉพาะแอตทริบิวต์ค่าเท่านั้น (และเฉพาะในกรณีที่คุณสมบัติสามารถเขียนได้)
( ECMAScript 5 มีเมธอดสำหรับทั้งการรับและการตั้งค่าแอตทริบิวต์คุณสมบัติทั้งหมด)
คุณสมบัติต้นแบบ
วัตถุ JavaScript สืบทอดคุณสมบัติของต้นแบบ
คีย์เวิร์ดจะไม่ลบคุณสมบัติ ที่delete
สืบทอดมา แต่ถ้าคุณลบคุณสมบัติต้นแบบ จะมีผลกับอ็อบเจ็กต์ทั้งหมดที่สืบทอดมาจากต้นแบบ