0

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

2 回答 2

2

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

于 2015-03-01T05:45:22.610 回答
1

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

于 2015-03-01T05:45:05.550 回答