2012-06-07 55 views
1

我有以下代碼:我可以在Javascript中的if語句中調用一個函數嗎?

var rtn = getParams(entity) 
if (rtn.rc == false) { return; } 
parameters = rtn.param; 

有沒有辦法,我可以把呼叫getParams if語句裏面的方法嗎?我也需要把回報;在JavaScript中的大括號?我正在尋找一種方法來清理此代碼段。任何建議,將不勝感激。

+0

那麼,你有沒有試着去'如果(getParams(實體).RC ==假)'? – Esailija

+0

我不知道你在那裏做什麼。 –

回答

3

還不如做一次全部

if ((rtn = getParams(entity)).rc) { 
    parameters = rtn.param; 
} else { 
    return; 
} 
+0

'if(rtn = getParams(entity))'這對我來說並不好看。 –

+0

你是對的,我錯過了rc屬性,現在改爲準確。我的觀點是他可能會分配rtn一次,而不是多次調用getParams –

+0

它不應該是'rtn == getParams ...'嗎? –

3

我覺得你這是什麼......之後

if(getParams(entity).rc == false) 
    return; 

parameters = getParams(entity).params; 

這是完全有效的(和法律)投票。

假設getParams返回一個具有rc屬性的對象,那麼您很好。如果沒有,你將會在未定義的字段(在這種情況下爲rc)未捕獲的異常失敗。另外,請記住,與其他一些語言不同,false!= null和false!= undefined,空字符串「」既不是false也不是undefined,所以如果你希望這個測試能夠工作,那麼確保rc是*其實是false。 。

+0

你的代碼中的'parameters = rtn.param;'代碼行在哪裏?如果'.rc!= false',如何在'if'語句之後獲得'param'字段值? –

+0

@AndrewD,不確定你的意思。 if只會看到rc字段是否爲false。如果該字段爲假,則該函數退出。如果它不是假的,那麼你繼續與你提取的對象...老實說,我不能相信有人只是downvoted這個答案。真的很棒。 –

+0

@ Dr.Dredel - 別擔心,你仍然有18個聲望。 –

1

還做我需要把回報;在JavaScript中的大括號?

沒有必要,但它的推薦。

我正在尋找一種方法來清理此代碼段。用這個替換你的3行。

parameters = getParams(entity).rc ? getParams(entity).param : false; 
return parameters; 
+0

從OP的問題來看,並不清楚如果rc字段爲false,則返回參數...僅失敗。除此之外,可能會有更多的代碼,不是嗎? –

+0

是的,這是正確的。 – kiranvj

+1

在你的例子中'rtn'沒有被定義! –

相關問題