javascript 之 Object.defineProperty
语法:
Object.definePropty(obj,prop,descriptor);
参数:
obj:要在其上定义属性的属性
prop:要定义或修改的属性的名称
desriptor:将被定义或修改的属性描述符
返回值:
被传递给函数对象
属性描述符:
Configurable: 能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,默认为ture
Enumerable:能否通过for-in循环返回属性 默认为ture
Writable:能否修改属性的值,默认为true;
案例:
var person={ name:"Nic" } var person={}; Object.defineProperty(person,"name",{ writable:false, value:"Nicholas",
enumerable:false }) alert(person.name); //Nicholas person.name="Greg"; alert(person.name);//Nicholas
for(var key in person) //当enumerable为false时,无法进入该循环,因为此设置无法让person对象的name属性进行for-in循环
{
console.log(key);
}
Value:包含这个属性的数据值。默认值为undefined