JS object.defineporperty()

在JavaScript中,Object.defineProperty是一个用于定义对象属性的方法,该方法用于添加或修改对象的属性,并定义属性的特性。

Object.defineProperty(obj, prop, descriptor)
//obj:要定义属性的对象。
//prop:要定义或修改的属性的名称。
//descriptor:用于定义或修改属性的特性。包含以下可选属性:
	//value:属性的值,默认为undefined。
	//writable:属性的值是否可以被赋值运算符改变(是否可以被赋予新的值),默认为false。
	//enumerable:属性是否可以被遍历,默认为false,设置为true后则不可被for等方法遍历。
	//configurable:属性是否可被删除或修改特性,默认为false。

代码示例

// 定义一个对象
var obj = {};

// 添加一个可写的属性
Object.defineProperty(obj, 'name', {
  value: 'My Name is jack',
  writable: true,
  enumerable: true,
  configurable: true
});

console.log(obj.name); // 输出: My Name is jack

// 尝试修改属性的值
obj.name = 'My Name is Jane';
console.log(obj.name); // 输出: My Name is Jane

// 定义一个不可写的属性
Object.defineProperty(obj, 'age', {
  value: 18,
  writable: false,
  enumerable: true,
  configurable: false
});

console.log(obj.age); // 输出: 18

// 尝试修改不可写属性的值
obj.age = 30;
console.log(obj.age); // 输出: 18,因为属性是不可写的

// 尝试删除属性
delete obj.age;
console.log(obj.age); // 输出: 25,因为属性是不可配置的

Object.defineProperty方法在创建或修改对象属性时可以用于更加精确地控制属性的特性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值