Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套类对象上的defineProperty_Javascript_Oop_Object_Prototype - Fatal编程技术网

Javascript 嵌套类对象上的defineProperty

Javascript 嵌套类对象上的defineProperty,javascript,oop,object,prototype,Javascript,Oop,Object,Prototype,假设我们有这样一门课: 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的值设置为

假设我们有这样一门课:

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={
建议一:“我的建议一”,
get prop2(){return'.'+this.prop1;},
集合prop2(v){this.prop1=v;}
};
}
var x=新的MyClass;
document.write(x.myProps.prop2+“
”); x、 myProps.prop2=42;
document.write(x.myProps.prop2+“
”)不能在原型上放置实例属性的属性