摘要:在中闭包已经成了一个很神秘,让人高山仰止的存在。今天又对闭包进行了一番搜索,有了一种明悟闭包就相当于黑盒的钥匙。当你手握闭包,黑盒就能为你所用。通过访问外部变量,一个闭包可以维持这些变量。闭包经常用于创建含有隐藏数据的函数但并不总是这样。
在javascript中闭包已经成了一个很神秘,让人高山仰止的存在。
今天又对闭包进行了一番搜索,有了一种明悟:闭包就相当于黑盒的钥匙。当你手握闭包,黑盒就能为你所用。
为什么这么说呢?这个想法来自于这篇文章:
function foo(x) { var tmp = 3; return function (y) { alert(x + y + tmp); x.memb = x.memb ? x.memb + 1 : 1; alert(x.memb); } } var age = new Number(2); var bar = foo(age); // bar 现在是一个引用了age的闭包 bar(10);
如果一个函数访问了它的外部变量,那么它就是一个闭包。
注意,外部函数不是必需的。通过访问外部变量,一个闭包可以维持(keep alive)这些变量。在内部函数和外部函数的例子中,外部函数可以创建局部变量,并且最终退出;但是,如果任何一个或多个内部函数在它退出后却没有退出,那么内部函数就维持了外部函数的局部数据。闭包经常用于创建含有隐藏数据的函数(但并不总是这样)。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/79926.html
摘要:第一版设计需求单用户之间通信融合了用户反馈需求数据库设计内容和收发者存在一张表中表这里一条存两次,类似邮件服务。参考群发站内信的实现群发站内信的实现续两年后,再议站内信的实现百万级用户量的站内信群发数据库设计 第一版设计 需求 :单用户之间通信(融合了用户反馈需求) 数据库设计:Message内容和收发者存在一张表中 message表: 这里一条Message存两次,类似邮件服务。...
摘要:第一版设计需求单用户之间通信融合了用户反馈需求数据库设计内容和收发者存在一张表中表这里一条存两次,类似邮件服务。参考群发站内信的实现群发站内信的实现续两年后,再议站内信的实现百万级用户量的站内信群发数据库设计 第一版设计 需求 :单用户之间通信(融合了用户反馈需求) 数据库设计:Message内容和收发者存在一张表中 message表: 这里一条Message存两次,类似邮件服务。...
阅读 3636·2021-09-07 09:59
阅读 694·2019-08-29 15:12
阅读 769·2019-08-29 11:14
阅读 1278·2019-08-26 13:27
阅读 2620·2019-08-26 10:38
阅读 3092·2019-08-23 18:07
阅读 1247·2019-08-23 14:40
阅读 1874·2019-08-23 12:38