闭包
来源:互联网 发布:负离子吹风机 知乎 编辑:程序博客网 时间:2024/05/18 03:21
*比如我们通过js构建一个商品对象,初始化传入商品ID。
该对象里面有个方法,该方法假设要通过『有逼格』的计算才能获获取商品名称*
1.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
并没有获取到我们认为的『霸王油』, 这是因为实例化后的p1并不能调用loadProd这个方法。
2.所以我们只能在内部调用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
上面代码还是弹出『药品』,这是因为loadProd()函数内部的this并不是我们传入的。
优化:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
3.闭包的写法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
再次优化:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
简单总结:
1.内部function访问了外部变量
2.内部函数维持了外部函数(对象)的数据
3.闭包本身是为了简化代码、减少过多的人工细节参与
0 0
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- oracle学习笔记_1_oracle入门
- 1、微信公众号开发之环境搭建
- JAVA中equals方法和==的区别
- bzoj3209: 花神的数论题
- 再按一次退出——两种方式实现
- 闭包
- 使用BeanShell设置JMeter动态变量
- 径向基函数方差的选取
- linux c之管道的介绍、创建关闭和简单读写(父进程向子进程写入数据)
- 矩阵取数问题
- Test My Csdn Blogs
- 工程领域生产率问题
- bzoj1799: [Ahoi2009]self 同类分布
- [USACO1.3]混合牛奶 Mixing Milk-洛谷 1208