過了一會兒寫javascript我總是有這個問題。我總是要檢查變量存在,然後才能使用它的屬性,否則我會得到一個錯誤。如下面的代碼JavaScript使用財產安全,沒有得到錯誤
if (something) {
var data = {
date: moment()
};
}
var x = new F({
param: param,
date: data.date || null //<-- still error
})
其中一些變量可能存在或不是,那我肯定不能使用date.date。我必須創建一個新變量來解決這個問題。像
if(data){ date = data.date }
但是有沒有更短的解決方案?
date:(data || {})。date || null // < - 沒有錯誤。但看起來不好:D。 –
是的,這是一個問題,但你讓它比它所需要的更困難。而不是僅僅有時實例化'data',只是經常做,如果條件通過,添加屬性。這樣你就不需要防止'數據'被'未定義',你只關心它有或沒有的屬性。事實上,你不需要'|| null「,因爲如果沒有'date'屬性,你只需要'undefined'。 – vlaz