เราสามารถกำหนด คุณสมบัติ ของวัตถุโดยใช้ จุด และ วงเล็บ สัญกรณ์ นอกจากนี้ยังมีอีกวิธีหนึ่งที่คุณสมบัติที่เรียกว่า 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}