2016-02-19 27 views
0

我有這樣的場景:或檢查,如果該函數返回null不

var myResult = scope.inside.GetMyData() || scope.outside.GetMyData(); 

其中的一個功能將containe的方法。我需要檢查第一個是否返回任何內容,如果不是,則使用另一個。

在第一種情況下,它工作得很好。但是,如果範圍爲空,則它給了我這個錯誤:

Uncaught TypeError: Cannot read property 'scope' of null.

我可能會做的if/else和檢查空,但我想用||如果可能的話。

有什麼建議嗎?

+0

試圖訪問一個深成樹當父爲null總是會失敗。您需要驗證每個孩子先不爲空。 – Trasiva

+0

有一個jsfiddle? –

+1

有時「if」和「else」更清晰。 – djechlin

回答

0

您可以使用&&

var myResult = scope && (scope.inside.GetMyData() || scope.outside.GetMyData()); 

或三元運算符:

var myResult = !scope ? null : (scope.inside.GetMyData() || scope.outside.GetMyData());