使用闭包函数的一个例子

44 阅读1分钟

使用闭包实现如下功能:

创建门票检测函数checkTicket(height, age),判断是否可以买儿童票,函数会返回布尔值

不同的游乐场有不同的检测标准

游乐场 A 要求, 身高不足 1 米, 6 岁以下, 可以买儿童票

游乐场 B 要求, 身高不足 1.2 米, 5 岁以下, 可以买儿童票

游乐场 C 要求, 身高不足 0.9 米, 7 岁以下, 可以买儿童票

代码如下

// 定义外部函数
function makeTicket(heightLine,ageLine){
// 返回内部函数
    return function(height,age){
        // 内部函数用到了外部函数的参数
        if(height <= heightLine && age <= ageLine){
            return '可以购买儿童票'
        }
        return '只能购买成人票'
    }
}
// 在外部函数外面调用内部函数
var checkTicketA = makeTicket(100,6)
var checkTicketB= makeTicket(120,5)
var checkTicketC = makeTicket(90,7)
// 最终要执行的是内部函数
console.log(checkTicketA(100,6));