根据这份文件
https://developer.mozilla.org/en-US/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);
}
}
}
答案 0 :(得分:3)
你似乎在寻找
var o = {
current: {
set myVal(str) {
o.log.push(str);
}
},
log: []
};
但这可能是一个坏主意。
答案 1 :(得分:1)
我不认为这是一个好主意,但理论上你可以使用systemProp.http.proxyHost= myHost
systemProp.http.proxyPort= myPort
systemProp.http.proxyUser= myUser
systemProp.http.proxyPassword= myPassword
的setter返回一个对象:
o.current