2 回答
TA贡献1794条经验 获得超8个赞
访问器描述符和数据描述符之间的主要区别是访问器用 get 和 set 函数替换值和可写配置标志。更多信息在这里
数据描述符
Object.defineProperty(obj, 'key', {
enumerable: false,
configurable: false,
writable: true,
value: 'some value'
});
访问器描述符
Object.defineProperty(obj, 'key', {
enumerable: false,
configurable: false,
get() {
return this.some_value;
},
set(data) {
this.some_value = 'some value';
}
});
TA贡献1906条经验 获得超10个赞
对象中的属性描述符有两种主要类型:数据描述符和访问器描述符。数据描述符是具有值的属性,该值可能是也可能不是可写的。访问器描述符是由一对 getter-setter 函数描述的属性。描述符必须是这两种风格之一;不可能两者兼而有之。
数据描述符定义{value: any; writable: boolean;}
定义的访问器描述符{ get(){}, set(value){} }
您可以/必须定义一个或另一个,不能将 getter/setter 与可写或其他一些交叉一起使用。
两者都允许 等属性enumerable。
添加回答
举报
