下面的工作javascript片段不包含验证,因为它仅用于学习目的。但是,在buildBoundDetector()函数中定义变量'isBetween'之后,我不理解事件流。为什么通过变量'f'传递数字?
function buildBoundDetector( lowerBound, upperBound ) {
var isBetween = function(number){
if(lowerBound <= number && number <= upperBound){
return true;
}
return false;
}
return isBetween;
}
var f = buildBoundDetector( 1, 100 );
f(45);
答案 0 :(得分:2)
buildBoundDetector()
是一个返回函数的函数。在Javascript中,您可以为变量分配函数。这是buildBoundDetector()
的作用。它定义了一个匿名函数,然后将其分配给isBetween
,然后返回isBetween
。 f
设置为buildBoundDetector()
的结果,即该函数。因为f
是一个函数,所以可以调用它。
答案 1 :(得分:1)
在JavaScript和许多其他语言中,函数可以被视为值。因此,您的第一个函数返回一个值,该值本身就是对函数的引用。然后,返回的函数值与任何其他函数一样应用于参数45。