数码资讯
javascript对象的属性详细解决方案
Javascript中对象的属性有三个属性: 1.writable.whether的属性可写。 2.enumerable.if的 /在声明时,属性列举。 3.configurable.whether财产的属性可以修改财产是否可以被删除。 在ECMAscript 3标准,以上三个属性值是真的不能改变:
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
Javascript中对象的属性有三个属性:
1.writable.whether的属性可写。
2.enumerable.if的 /在声明时,属性列举。
3.configurable.whether财产的属性可以修改财产是否可以被删除。
在ECMAscript 3标准,以上三个属性值是真的不能改变:新对象的属性是可写的,可以枚举和删除;在ECMAscript 5标准,通过属性描述对象(属性描述符)这些属性的配置和修改。
如果属性值信息也作为财产的属性,属性的对象有四个属性:价值、可写、可枚举和配置。
通过对属性的getter和setter方法的定义,因为它没有可写属性(是否可写属性的setter方法取决于是否存在),所以这个属性具有四个属性:得到的,集,枚举和配置-获取和设置属性值的函数。
获取对象属性的属性。
在ECMAscript 5标准,object.getownpropertydescriptor()可以用来获得对象本身的属性的属性信息:
复制代码代码如下所示:
var:x:1 };
创建一个object.create(O);
a.y = 3;
console.log(Object.getOwnPropertyDescriptor(A,Y)); / /对象{配置= true,枚举=真实,可写=真值= 3 }
console.log(Object.getOwnPropertyDescriptor(一个X)); / /未定义
如您所见,如果属性不存在或属性从原型对象继承,则返回到未定义的对象。
设置对象属性的属性
在ECMAscript 5标准,您可以通过Object.defineProperty组的一个对象的本身属性的一个属性():
复制代码代码如下所示:
object.defineproperty(一、Y
值:3,
可写的:真的,
枚举:假,
配置:真
});
console.log(a.propertyisenumerable(Y)); / /假
如果属性集是从原型对象继承的,Javascript将在对象本身中创建一个具有相同名称的属性,这与赋值操作的相关行为相一致。
复制代码代码如下所示:
object.defineproperty(A,X
值:1,
可写的:真的,
枚举:假,
配置:真
});
console.log(a.propertyisenumerable(X)); / /假
console.log(o.propertyisenumerable(X)); / /真的
除了修改属性的属性外,还可以将属性更改为吸气剂或设置程序访问:
复制代码代码如下所示:
object.defineproperty(一、Y
获取:函数(){返回42;}
});
console.log(a.y); / / 42
当使用object.defineproperty(),属性描述对象的部分属性值。当属性值被忽略时,Javascript中的规则如下:
如果属性是新的,所有被忽略的属性值都是false或未定义的。
如果属性存在,所有被忽略的属性值保持不变。
批处理集对象属性的属性
如果你需要在同一时间设置多个属性,你可以使用object.defineproperties()语句,这个语句将返回修改的对象。
复制代码代码如下所示:
object.defineproperties(,{
Y:{价值:79、可写的:真的,真的,真的可枚举:可配置:},
Z:{价值:99、可写的:真的,真的,真的可枚举:可配置:}
});
console.log(一); / /对象{ y = 79,z = 99 }
属性设置规则
当属性被修改,以下规则必须遵守。如果一个规则被违反,Javascript将报告一个错误列表:
如果对象不可扩展,则只能修改现有属性的属性,并且不能添加新属性。
如果属性的可配置属性为false,则可配置和可枚举属性不能修改的值。对于可写属性,它可以从true更改为false,但不能从false更改为true。
如果属性的可配置属性和可写属性都是false,则属性值不能更改。如果属性的可写属性是false,但是它的可配置属性为true,那么属性值仍然可以修改。
1.writable.whether的属性可写。
2.enumerable.if的 /在声明时,属性列举。
3.configurable.whether财产的属性可以修改财产是否可以被删除。
在ECMAscript 3标准,以上三个属性值是真的不能改变:新对象的属性是可写的,可以枚举和删除;在ECMAscript 5标准,通过属性描述对象(属性描述符)这些属性的配置和修改。
如果属性值信息也作为财产的属性,属性的对象有四个属性:价值、可写、可枚举和配置。
通过对属性的getter和setter方法的定义,因为它没有可写属性(是否可写属性的setter方法取决于是否存在),所以这个属性具有四个属性:得到的,集,枚举和配置-获取和设置属性值的函数。
获取对象属性的属性。
在ECMAscript 5标准,object.getownpropertydescriptor()可以用来获得对象本身的属性的属性信息:
复制代码代码如下所示:
var:x:1 };
创建一个object.create(O);
a.y = 3;
console.log(Object.getOwnPropertyDescriptor(A,Y)); / /对象{配置= true,枚举=真实,可写=真值= 3 }
console.log(Object.getOwnPropertyDescriptor(一个X)); / /未定义
如您所见,如果属性不存在或属性从原型对象继承,则返回到未定义的对象。
设置对象属性的属性
在ECMAscript 5标准,您可以通过Object.defineProperty组的一个对象的本身属性的一个属性():
复制代码代码如下所示:
object.defineproperty(一、Y
值:3,
可写的:真的,
枚举:假,
配置:真
});
console.log(a.propertyisenumerable(Y)); / /假
如果属性集是从原型对象继承的,Javascript将在对象本身中创建一个具有相同名称的属性,这与赋值操作的相关行为相一致。
复制代码代码如下所示:
object.defineproperty(A,X
值:1,
可写的:真的,
枚举:假,
配置:真
});
console.log(a.propertyisenumerable(X)); / /假
console.log(o.propertyisenumerable(X)); / /真的
除了修改属性的属性外,还可以将属性更改为吸气剂或设置程序访问:
复制代码代码如下所示:
object.defineproperty(一、Y
获取:函数(){返回42;}
});
console.log(a.y); / / 42
当使用object.defineproperty(),属性描述对象的部分属性值。当属性值被忽略时,Javascript中的规则如下:
如果属性是新的,所有被忽略的属性值都是false或未定义的。
如果属性存在,所有被忽略的属性值保持不变。
批处理集对象属性的属性
如果你需要在同一时间设置多个属性,你可以使用object.defineproperties()语句,这个语句将返回修改的对象。
复制代码代码如下所示:
object.defineproperties(,{
Y:{价值:79、可写的:真的,真的,真的可枚举:可配置:},
Z:{价值:99、可写的:真的,真的,真的可枚举:可配置:}
});
console.log(一); / /对象{ y = 79,z = 99 }
属性设置规则
当属性被修改,以下规则必须遵守。如果一个规则被违反,Javascript将报告一个错误列表:
如果对象不可扩展,则只能修改现有属性的属性,并且不能添加新属性。
如果属性的可配置属性为false,则可配置和可枚举属性不能修改的值。对于可写属性,它可以从true更改为false,但不能从false更改为true。
如果属性的可配置属性和可写属性都是false,则属性值不能更改。如果属性的可写属性是false,但是它的可配置属性为true,那么属性值仍然可以修改。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。