最近我在Swift中進行了很多編程。今天我在JavaScipt中做了一些工作,當問題彈出給我時:JavaScript中的可選鏈接
有沒有類似於JavaScript中的可選鏈接?一種防止undefined is not an object
沒有任何變量的方法?
實施例:
function test(){
if(new Date() % 2){
return {value: function(){/*code*/}};
}
}
test().value();
將失敗的時間,因爲有時test
返回未定義一半。
我能想到的唯一解決方案是一個功能:
function oc(object, key){
if(object){
return object[key]();
}
}
oc(test(), 'value');
我希望能夠做一些事情,如:
test()?.value()
問號後面的部分,如果只執行test
返回了一個對象。
但這不是非常典型的。有什麼更好的嗎?運營商的魔力組合?
編輯我知道我可以重寫test
返回一些東西。但我想知道是否有可選的鏈接。我對上述示例的特定解決方案不感興趣。如果不能控制返回未定義的函數,我也可以使用它。
你想要什麼值()返回時測試()返回undefined? – 2014-10-03 17:44:20
@ZaheerAhmed錯誤或未定義。真的沒關係。 – idmean 2014-10-03 17:45:08
您可以包裝現有函數以在未定義的情況下返回默認值,而無需重寫。您也可以在調用時使用三元(x?y:z)()或默認運算符(x || y)()。 – dandavis 2014-10-03 17:54:42