美文网首页
什么是闭包?

什么是闭包?

作者: 沃德麻鸭 | 来源:发表于2021-10-09 08:23 被阅读0次

    1.首先认识一下,什么是变量作用域?

    ①函数内部可以使用全局变量

    ②函数外部不可以使用局部变量

    ③当函数执行完毕,本作用域内的局部变量会销毁

    2.什么是闭包呢?

    闭包指有权访问另一个函数作用域中变量的函数------JaveScript高级程序设计(一个作用域可以访问另一个函数内部的局部变量

    闭包示例

    3.闭包的作用-----延伸了变量的作用范围

    在fn外面的作用域可以访问fn内部的局部变量

    在函数内返回一个函数,然后调用这个函数就相当于得到了函数内部的返回函数,赋值给变量,这个变量就是返回的函数,之后对这个变量进行调用就相当于调用了fn中返回的那个函数。结果还是可以打印出 10

    闭包就是一个典型的高阶函数 更简洁的写法

    4.闭包的基础使用

    ①执行完了再++,执行完时是2,加加变成3,然后再执行函数,打印出来的结果都是3

    闭包案例

    ②利用闭包分别打印出每次i的循环结果,相当于利用for循环建立了3个立即执行函数------立即执行函数也被称为一个小闭包,因为立即执行函数里面的任何一个函数都可以使用它的这个i变量

    输出0 1 2 在定时器中的应用

    ③利用动态添加属性的方式

    点击li输出当前li的索引值

    打车案例:

    起步价13(3公里以内),每超出一公里增加5块钱,用户输入公里数就可以计算打车价格

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

    代码流程

    分析:

    ①首先给定起步价和总价的初始值

    ②再定义两个函数,分别为正常的总价和拥堵的总价

    ③正常总价算法分两种情况,路程在3公里以内或者3公里以外,如果在三公里以内,均为13,3公里以外的算法就是基础价+(总路程-3)*5

    ④拥堵价,要根据拥堵情况计算,如果拥堵,那么就在total的基础上+10,如果不拥堵,那么就等于total

    ⑤最后调用函数,传递参数,输出结果

    相关文章

      网友评论

          本文标题:什么是闭包?

          本文链接:https://www.haomeiwen.com/subject/hcvinltx.html