函数中的javascript函数表达式

时间:2015-03-01 05:42:39

标签: javascript function function-expression

下面的工作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);

2 个答案:

答案 0 :(得分:2)

buildBoundDetector()是一个返回函数的函数。在Javascript中,您可以为变量分配函数。这是buildBoundDetector()的作用。它定义了一个匿名函数,然后将其分配给isBetween,然后返回isBetweenf设置为buildBoundDetector()的结果,即该函数。因为f是一个函数,所以可以调用它。

答案 1 :(得分:1)

在JavaScript和许多其他语言中,函数可以被视为值。因此,您的第一个函数返回一个值,该值本身就是对函数的引用。然后,返回的函数值与任何其他函数一样应用于参数45。