最新发现:Object.defineProperty()让数组的length属性变成只读

时间:2025-04-19 23:07:43

将属性添加到对象, 或修改现有属性的特性---MSDN的解释.

语法

object.defineProperty(object, propertyname, descriptor)

object: 必须. 要修改的属性的对象.

propertyname : 必须. 属性名称.

descriptor: 必须. 属性描述符. 他可以针对数据属性或访问器属性.

返回值: 已修改的对象.

可以使用object.defineProperty()执行以下操作:

1.向对象添加新属性. 当对象不具有指定的属性名称时, 发生此操作.

2.修改现有属性的特性. 当对象已具有指定的属性名称时, 发生此操作.

修改数据属性

     var b = [1, 2, 3];
Object.defineProperty(b, "length", {writable: false}); //让length变成可读属性
b.length = 0;
console.log(b.length);

添加数据属性

     var newLine = "<br/>";
var obj = {};
Object.defineProperty(obj, "newDataProperty", {
value:101,
writable:true,
enumerable:true,
configurable:true
});
obj.newDataProperty = 102;
document.write("Property value: " + obj.newDataProperty + newLine);