2014-08-31 67 views
0

我正在評論JavaScript確認調用的一些代碼。從我的理解,確認returns true or false。我與一直這樣做以下工作的開發:JavaScript確認窗口

function askTheUser(question, myCallback) { 
    var result = confirm(question); 
    myCallback(result ? 2 : 1); 
} 

被扔我一個循環的線是result ? 2 : 1。爲什麼有人會這樣做,而不僅僅是myCallback(result);

有沒有什麼與我不知道的回調有關。我只是想回復與用戶是否確認問題相關的真假。我一直在看。它看起來不正確。

謝謝。

+1

我們不能告訴你爲什麼在沒有更多上下文的情況下將'true/false'轉換成'2/1'很重要。 – 2014-08-31 21:42:18

+0

在這種情況下,當用戶按OK時,它返回'2',否則返回'1'。 – rybo111 2014-08-31 21:42:26

回答

0

result ? 2 : 1意味着如果result爲真,則2否則返回1

他/她必須有一個特殊的理由這樣做。嘗試查看代碼在哪裏使用。

0

是的,你是對的。它應該只是(結果)。回調可以分配1,2或任何它想要的 - 如果它真的有必要這樣做! 很簡單,就是要與參數調用回調,沒有什麼特別的地方

+0

對於低調選民來說,作爲代碼審查的一部分,我認爲它對於質疑使用任意數字以及保持邏輯和簡單的事情非常重要。所以是的 - 使用原始的bool值! – ne1410s 2014-08-31 21:54:18

+0

+爲你的「它*應該是*而不要使用任意數字」,但如果你打算說明這一點,你可以編輯一下,以便在答案中更清楚地說明「應該」是什麼意思?你可以希望一個界面不是什麼東西,但你並不總是有行政權力去改變它。 – HostileFork 2014-09-01 06:39:32

1

這不是不正確,它只是轉化成true/false2/1。推測他們有這樣做的一些理由。