JavaScript 闭包应用-计算打车价格

  • A+
所属分类:Web前端

场景:

  1. 打车起步价13(3公里内),之后每多一公里增加5块钱。用户输入公里数就可以计算打车价格。
  2. 如果有拥堵情况,总价格多收取10块钱拥堵费。

代码实现:

<!DOCTYPE html> <html lang="en">  <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="X-UA-Compatible" content="ie=edge">     <title>Document</title>  </head>  <body>     <script>         var car = (function() {             var start = 13; // 起步价  局部变量             var total = 0; // 总价  局部变量             return {                 // 正常的总价                 price: function(n) {                     if (n <= 3) {                         total = start;                     } else {                         total = start + (n - 3) * 5                     }                     return total;                 },                 // 拥堵之后的费用                 yd: function(flag) {                     return flag ? total + 10 : total;                 }             }         })();         console.log(car.price(5)); // 23         console.log(car.yd(true)); // 33          console.log(car.price(1)); // 13         console.log(car.yd(false)); // 13     </script> </body>  </html>