的任意屬性我有一個類,看起來像這樣返回一個適合對象
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