gpt4 book ai didi

javascript - 在嵌套类对象上定义属性

转载 作者:行者123 更新时间:2023-11-29 10:36:05 24 4
gpt4 key购买 nike

假设我们有这个类:

var MyClass = function() {
this.oneProp = 'one prop';
this.myProps = {
prop1: 'my prop1',
prop2: 'my prop2'
};
});

如何使用 Object.definePropertymyProps.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 - 在嵌套类对象上定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36149767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com