1. 课堂练习题 使用闭包函数计算打车价格,出租车起步价11元(3公里内),之后每增加一公里增加2.2元,如果夜间(23:00~5:00),总价格为原来的1.3倍。计算并且输出正常6公里的费用以及6公
时间: 2024-11-15 13:21:28 浏览: 23
在JavaScript中,我们可以使用闭包函数来模拟这个打车计费规则。下面是一个简单的例子:
```javascript
function createTaxiCalculator(isNight) {
let basePrice = isNight ? 11 * 1.3 : 11; // 判断是否夜间,计算起步价
let perKmRate = 2.2;
return function(distance) {
if (distance < 3) {
return basePrice;
} else {
return basePrice + (distance - 3) * perKmRate;
}
};
}
// 使用闭包计算白天6公里的费用
let taxiPriceNormalDay = createTaxiCalculator(false);
console.log("白天6公里费用:", taxiPriceNormalDay(6));
// 计算夜间6公里的费用
let taxiPriceNight = createTaxiCalculator(true);
console.log("夜间6公里费用:", taxiPriceNight(6));
```
在这个例子中,`createTaxiCalculator`函数返回了一个内部函数,该内部函数根据传入的距离值动态计算总费用。当调用这个返回的函数时,实际上是调用了闭包内的逻辑,实现了按需计算。
阅读全文