闭包函数应用
// 开发一个出租车计价器;
// 注意:计价器~计算的数据,不能存储在全局变量中,避免全局污染问题
// 不能使用面向对象开发,不能存储在对象中
// 要求:通过函数式开发,开发一个计价程序
// 实现多段计价,堵车-5块、正常行驶 3块/公里
// 有一个出租车–一段计价里程:行驶2公里、堵车1次、行驶3公里、堵车1次、行驶2公里到达目的地
function txt() {
// 计价总额
let money = 0
// 闭包函数:声明一个计价器
function calculation(sts, dsc=0) {
if(sts === ‘正常行驶’) {
money += dsc * 3;
}else if(sts === ‘堵车’) {
money += 5
}
return money
}
// 返回闭包函数的声明
return calculation
}
// 通过执行函数,获取一个计价器
let cal = txt()
cal(‘正常行驶’, 2) // 6
cal(‘堵车’) // 5
cal(‘正常行驶’, 3) // 9
cal(‘堵车’) // 5
const money = cal(‘正常行驶’, 2) // 6
console.log(“计算总价:”, money) // 31