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

原文地址:https://www.cnblogs.com/zmztya/p/11385436.html