เราสามารถกำหนด คุณสมบัติ ของวัตถุโดยใช้ จุด และ วงเล็บ สัญกรณ์ นอกจากนี้ยังมีอีกวิธีหนึ่งที่คุณสมบัติที่เรียกว่า Object.defineProperty() ใช้เพื่อกำหนดคุณสมบัติ โดยปกติแล้วจะใช้พารามิเตอร์ 3 ตัว ได้แก่ ชื่ออ็อบเจ็กต์ ชื่อคุณสมบัติ ตัวบอกคุณสมบัติ
ไวยากรณ์
Object.defineProperty(object name, property name, property descriptor)
มากำหนดคุณสมบัติด้วยวิธีนี้กันเถอะ
ตัวอย่าง
ในตัวอย่างต่อไปนี้ ในขั้นต้น วัตถุมีคุณสมบัติเพียงหนึ่งเดียวชื่อ 'หนึ่ง '. ต่อมาทรัพย์สินอื่นชื่อ 'สอง ' ถูกเพิ่ม เมื่อเราพยายามแสดงคุณสมบัติทั้งหมด จะแสดงเฉพาะคุณสมบัติแรกเท่านั้น แต่ไม่แสดงคุณสมบัติที่เพิ่มตามที่แสดงในผลลัพธ์
<html>
<body>
<script>
var object = {one: 1};
Object.defineProperty(
object,
'two', {
value: 2
}
);
document.write(JSON.stringify(object));
</script>
</body>
</html> ผลลัพธ์
{"one":1} ทั้งหมดนี้เป็นเพราะ "นับได้ " แอตทริบิวต์ "นับได้ " ต้องเป็นจริงเพื่อกำหนดคุณสมบัติในวัตถุ แต่ "นับได้ " ใช้ค่า "เท็จ" เมื่อไม่ได้ประกาศ ดังนั้นเพื่อให้ค่าเป็น "จริง " เราต้องประกาศ "นับได้ " และจำเป็นต้องกำหนด "จริง" ไปเลย
ในตัวอย่างต่อไปนี้เมื่อ "นับได้ " เริ่มต้นและกำหนดค่าเป็น จริง , คุณสมบัติทั้งหมดถูกแสดงตามที่แสดงในผลลัพธ์
ตัวอย่าง
<html>
<body>
<script>
var object = {one: 1};
Object.defineProperty(
object,
'two', {
value: 2,
enumerable: true
}
);
document.write(JSON.stringify(object));
</script>
</body>
</html> ผลลัพธ์
{"one":1,"two":2}