Object.defineProperty() ใช้สำหรับกำหนดคุณสมบัติใหม่หรือแก้ไขคุณสมบัติที่มีอยู่บนออบเจกต์ โดยสามารถควบคุมพฤติกรรมได้ละเอียด (writable, enumerable, configurable)
รูปแบบ:
Object.defineProperty(obj, prop, descriptor)
พารามิเตอร์:
- obj – ออบเจกต์ที่จะกำหนดคุณสมบัติ
- prop – ชื่อคุณสมบัติ (string หรือ Symbol)
- descriptor – ออบเจกต์ที่อธิบายลักษณะคุณสมบัติ
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script>
const obj = {};
Object.defineProperty(obj, 'prop', {
value: 20,
writable: false
});
obj.prop = 10; // จะไม่เปลี่ยนค่า เพราะ writable: false
document.write(obj.prop); // แสดง 20
</script>
</body>
</html>