回调与闭包函数基础
文章发布时间:
最后更新时间:
文章总字数:
预计阅读时间:
最后更新时间:
文章总字数:
679
预计阅读时间:
2 分钟
一.回调函数
把一个函数传入另一个函数,外面的函数叫工具函数,传入的函数就叫回调函数 (业务函数),工具操作后得到的数据交给回调函数处理。实质上就是运行过程中回去调用之前的函数。
1 |
|
1
9
25
[1]
[3]
[5]
就像上面所写,回调函数会把处理过的数据拿来做各种操作,其实就是把拿来的数据完成各种业务。
二.函数闭包
函数内部有函数,内部函数即闭包函数,其作用是:
把环境的值单独保存,不被其他地方的环境影响
实质就是同名的变量名可以存在,但是需要用闭包来实现
借用嵌套作用域,从里面的函数中访问到外面函数的变量,但更外面的环境访问不了,决定一个东西的版权。
1 |
|
100
666666
666666
; 我们先来看alipay的函数,其内部定义了一个变量money1和一个工具tool函数。
1 |
|
这就是一个闭包,tool就是所谓的闭包函数,它将alipay里的数据单独保存无法直接被外界作用域访问。
tool实际上就给了外界能够访问操作alipay数据的一个方法,且只能用它,必须满足它里面设定的条件。比如这里,tool函数里面设定了pwd(密码)必须是123,才让你修改其中的数据money1。这也就决定了这个’从alipay取钱’的版权是tool函数的,也就是设计alipay的程序工程师。
再来看meituan的函数。
1 |
|
其中,meituan函数调用了alipay函数,但其无法直接访问修改里面的moeny1,所以第一次密码输错的时候,没有将moeny1的值修改为100000,而是只打印了100。第二次密码输对了,就将其更改为666666并保存。