闭包 案例 + 闭包思考题

    一、闭包应用-计算打车价格

    需求案例:打车起步价13(3公里内)之后每多收一公里增加5元,用户输入公里数就可以计算         打车价格

    如果拥堵情况下,总价格多收取10块钱拥堵费    


    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



二,闭包思考题:

 总结闭包是什么:闭包是一个函数(一个作用域可以访问另外一个函数的局部变量)

  闭包作用:延伸了我们闭包的作用范围

 思考题1

  var name = "The  Window";

  var object = {

    name: "My Object",

    getNameFunc: function () {

      return function () {

        return this.name;

      };

    }

  };
  console.log(object.getNameFunc()());  //The  Window





        //分析object.getNameFunc()()
          var f = object.getNameFunc();
        //类似于
          var f = function(){
            return this.name;
              }
          f();
        // function(){this}()









 

var name = "The  Window";

  var object = {

    name: "My Object",

    getNameFunc: function () {

      var that = this;

      return function () {

        return that.name;

      };

    }

  };
  console.log(object.getNameFunc()());     //My Object






        //分析:
       var f = object.getNameFunc();
       var f = function(){
          return that.name;
       } ;
          f()






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值