嵌套类对象上的defineProperty
defineProperty on nested class object
假设我们有这样的类:
var MyClass = function() {
this.oneProp = 'one prop';
this.myProps = {
prop1: 'my prop1',
prop2: 'my prop2'
};
});
如何使用Object.defineProperty
在myProps.prop1上配置getter/setter,以便在更改myProps.prop1
时将myProps.prop2
的值设置为,例如'_'+prop1
?
我发现了一种在oneProp
上定义getter/setter的简单方法,使用:
Object.defineProperty(MyClass.prototype, 'oneProp', {
...
});
但我不知道如何在myProps.prop1
上做同样的事情。
感谢
您可以直接在对象文字中编写getter。
var MyClass = function() {
this.oneProp = 'one prop';
this.myProps = {
prop1: 'my prop1',
get prop2() { return '_' + this.prop1; },
set prop2(v) { this.prop1 = v; }
};
}
var x = new MyClass;
document.write(x.myProps.prop2 + '<br>');
x.myProps.prop2 = 42;
document.write(x.myProps.prop2 + '<br>');
相关文章:
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 重写不带defineProperty的对象getter
- 有人可以解释一下Object.defineProperty如何在javascript的构造函数中工作
- 是否有类似Object.defineProperty的方法来定义变量
- 如何列出使用Object.defineProperty定义的属性
- Object.defineProperty获取集返回错误的值
- Object.defineProperty()在测试(jpm运行)过程中有效,但不起作用;使用实际xpi时,不要执行任何
- 在object.defineProperty之前在对象初始化中设置属性
- 替代多个Object.defineProperty
- 嵌套类对象上的defineProperty
- Object.defineProperty的主要用例是什么
- 在 Javascript 中重新定义 Object.defineProperty
- 有没有更简单的方法在JavaScript中为Object.defineProperty编写
- 将原型上的__defineGetter__和__defineSetter__替换为 defineProperty
- Google Chrome Object.defineProperty中的错误行为
- Object.isExtensible() 为 true,但 Object.defineProperty() 会抛出.为
- javascript defineProperty 使属性不可枚举
- Object.defineProperty Setter 函数的多个参数
- 描述使用 Object.defineProperty 定义的属性
- Object.defineProperty 和 Object Property 文字之间的区别