的任意属性我有一个类,看起来像这样返回一个适合对象
export default class {
constructor() {
this.store = {}
}
setX (x, y) {
this.store[x] = y
}
}
我如何定义上this.store
一个getter得到一个未定义的值时返回0
?
让我举一个例子:
setX('a', 1)
将设置this.store['a']
到1
然后this.store['a']
将返回1
,符合市场预期。
但this.store['b']
将返回undefined
,但我想,吸气返回0
代替(也许叫setX('b', 0)
,目前还不能确定)。
我知道我可以用Object.defineProperty
来定义一个自定义的getter,我只是无法围绕如何访问store
对象的一个任意的,尚未定义的属性。
这是所有可能的还是我必须使用这样的解决方法?
getX (x) {
return this.store[x] || 0
}
我想避免这种情况,因为this.store[x]
看起来非常干净。
是不是最好使用(''的hasOwnProperty),而不是'in'? – Adelin
@Adelin:作为一个全面的声明?一点都不。这完全取决于你在做什么。在这里,我们从一个将会遍历原型链的对象中获取属性,所以使用遍历原型链的操作是合理的。 –
这真的很有帮助!谢谢! – Decay42