[英]ES6 getter setter with JSON object
根据这份文件
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/set
你可以做这样的事情
var o = {
set current (str) {
this.log[this.log.length] = str;
},
log: []
}
但是,如果我希望current
变量成为对象,并且想对该对象的属性进行setter
,该怎么办?
以下似乎不起作用
var o = {
set current.myVal (str) {
this.log[this.log.length] = str;
},
log: []
}
正确的方法是什么? 我读到您可以使用expression
但没有示例。
**更新1 **
以下答案之一是正确的,但如果是class
怎么办?
class o {
set current.myVal (str) {
this.log[this.log.length] = str;
}
}
我在下面尝试过,没有工作
class o {
current: {
set myVal(str) {
o.log.push(str);
}
}
}
您似乎在寻找
var o = {
current: {
set myVal(str) {
o.log.push(str);
}
},
log: []
};
但这可能是一个坏主意。
我认为这不是一个好主意,但是从理论上讲,您可以使用o.current
的setter返回一个对象:
var o = { get current() { var self = this; return { set myVal(str) { self.log[self.log.length] = str; } } }, log: [] }; o.current.myVal = 1234; o.current.myVal = 5678; document.write(o.log)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.