JavaScript确认窗口

问题描述:

我正在评论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

result ? 2 : 1意味着如果result为真,则2否则返回1

他/她必须有一个特殊的理由这样做。尝试查看代码在哪里使用。

是的,你是对的。它应该只是(结果)。回调可以分配1,2或任何它想要的 - 如果它真的有必要这样做! 很简单,就是要与参数调用回调,没有什么特别的地方

+0

对于低调选民来说,作为代码审查的一部分,我认为它对于质疑使用任意数字以及保持逻辑和简单的事情非常重要。所以是的 - 使用原始的bool值! – ne1410s 2014-08-31 21:54:18

+0

+为你的“它*应该是*而不要使用任意数字”,但如果你打算说明这一点,你可以编辑一下,以便在答案中更清楚地说明“应该”是什么意思?你可以希望一个界面不是什么东西,但你并不总是有行政权力去改变它。 – HostileFork 2014-09-01 06:39:32

这不是不正确,它只是转化成true/false2/1。推测他们有这样做的一些理由。