使用javascript闭包添加两个数字
我将如何使用闭包来实现这一点 加在一起(2)(3)使用javascript闭包添加两个数字,javascript,closures,Javascript,Closures,我将如何使用闭包来实现这一点 加在一起(2)(3) 我还需要与addTogether(2,3)返回5相同的函数来返回普通加法 您可以编写如下内容: function addTogether(a, b) { if (b === undefined) { return function (b) { return a + b; } } else { return a + b; } } 然而,返回一个函数或数字会让用户感到困惑(充其量)。我建议始终返回函数,但允许在没有参数
我还需要与addTogether(2,3)返回5相同的函数来返回普通加法 您可以编写如下内容:
function addTogether(a, b) {
if (b === undefined) {
return function (b) { return a + b; }
} else {
return a + b;
}
}
然而,返回一个函数或数字会让用户感到困惑(充其量)。我建议始终返回函数,但允许在没有参数的情况下调用它(只是稍微好一点):
FWIW:
b==null
句柄b===undefined | | b==null
否,当其中一个操作数为null
或未定义
时,唯一的时间=
将返回true
,如果另一个操作数也是null
或未定义
<代码>0==null;//false这几乎是我唯一一次在real code中使用==
。虽然我同意,可能不需要检查null
复选框。@眯着眼,嗯,你说得对。我假设==
会将0视为足够虚假的,以匹配null,但显然不是。是的,==
的问题就在于此。其算法过于复杂,无法提供直观的理解。检查null
和undefined
的=
太方便了,不能忽略!我不得不问,你为什么要这样做?我对潜在用例可能/将会是什么很感兴趣。
function addTogether(a, b) {
if (b === undefined) {
return function (c) { return a + c; }
} else {
return function ( ) { return a + b; }
}
}