对js闭包的学习
来源:互联网 发布:淘宝写论文靠谱吗 编辑:程序博客网 时间:2024/05/17 01:44
由于是JAVA出身, 编程习惯于面向对象, 总是对类这个东西有着执念( 真爱)!
开始接触js, 写着这样的代码
function f() {
点点点
}
function d() {
点点点
}
总感觉函数式的语言是不是少了什么, 于是Google一番, 才知道原来是自己见识短浅。。。
js的灵活程度之高让晚辈无法想象, 于是代码变成了这样
var a = function() {}
a.prototype.start = function() {}
a.prototype.end = function() {}
这就有点面向对象编程的习惯了, 出现了类!
如果喜欢封装, 那代码就变这样了、
var a = function() {}
a.prototype = {
start: function() {},
end: function() {},
}
终于要讲到闭包了, 在js中, 函数是一等对象,
他们可以储存可以作为参数传给其他函数, 还可以作为返回值传从其他函数传出,
甚至可以在运行时进行构造。 可是有一个问题就迎面而来, 既然js是函数式语言,
那么局部变量的值如何在另一个函数中去使用呢, 总不能所有变量都是全局变量--/
于是有了这样的代码
var scope = "123";
var a = function checkscope() {
var scope = 12;
function f() {
var scope = 13;
return d;
}
function d() {
var scope = 14;
return scope;
}
return d;
}
a()();
运行结果是14, 闭包就这么悄无声息的来了。
js的链特性让d函数链下的scope值在有了return后不会被垃圾回收清理,
一直存在的链式特性就是闭包实现的精华所在, 可能习惯了java的同学会
一时难以接受这个事实, 平时天下无敌的gc() 大哥居然。。。!。。。!
不去考虑底层, 这里的难题还有作用域。 this的使用。。 js的易变性。。 继承等等等
0 - 0! 搞局dota下次聊
0 0
- 对js闭包的学习
- 浅谈对JS闭包的理解
- 对js闭包例子的理解
- 对jS闭包的理解
- 对js闭包的理解
- 谈一谈对JS闭包的理解
- 个人对js闭包的理解
- 对JS闭包的一点点理解
- 对js闭包的理解
- 对js闭包的理解
- 对js闭包的理解
- 对js闭包的理解
- 对js闭包的理解
- 个人对学习闭包的理解
- Js闭包 学习
- js闭包学习
- js闭包学习
- 学习JS闭包
- 面试知识点笔记
- Filter发送自定义数据详解
- Apache_proxy负载均衡和Session复制
- MS SQLService中的*= 及 =*
- fork 多进程调试
- 对js闭包的学习
- spring解决数据库读写分离
- JavaWeb学习----Cookie实现记住密码的功能
- 配置 MySQL max_allowed_packet
- 【iOS】网络加载图片缓存与SDWebImage
- TCP和UDP的比较
- data_struction_test1:查找数组的前k个最小值
- 推荐五款好用的项目管理软件
- 关于Communications link failure Last packet sent to the server was 0 ms ago.的解决办法