闭包很像一个对象。只要调用一个函数,它就会被实例化。

在JavaScript中闭包的作用域是词法的,这意味着包含在闭包所属函数中的所有内容都可以访问其中的任何变量。

在闭包中包含一个变量

赋值为var foo=1;或

写var foo;

如果一个内部函数(包含在另一个函数中的函数)访问这样一个变量,而不使用var在它自己的作用域中定义它,那么它会修改外部闭包中变量的内容。

闭包的运行时间比生成它的函数的运行时间长。如果其他函数超出了定义它们的闭包/作用域(例如作为返回值),这些函数将继续引用那个闭包。

示例:

function example(closure) {

// define somevariable to live in the closure of example

var somevariable = 'unchanged';

return {

change_to: function(value) {

somevariable = value;

},

log: function(value) {

console.log('somevariable of closure %s is: %s',

closure, somevariable);

}

}

}

closure_one = example('one');

closure_two = example('two');

closure_one.log();

closure_two.log();

closure_one.change_to('some new value');

closure_one.log();

closure_two.log();

输出:

somevariable of closure one is: unchanged

somevariable of closure two is: unchanged

somevariable of closure one is: some new value

somevariable of closure two is: unchanged

java 闭包作用域_Java闭包如何工作相关推荐

  1. java获取作用域_Java 四大作用域总结

    一.ServletContext 1.生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟 ...

  2. java 会话共享_java – servlet如何工作?实例化,会话,共享变量和多线程

    假设,我有一个拥有大量servlet的Web服务器.对于在这些servlet之间传递的信息,我正在设置会话和实例变量. 现在,如果有2个或更多用户向此服务器发送请求,那么会话变量会发生什么?它们对所有 ...

  3. 猫眼java开发工资_Java硕士京东工作1年,跳槽后他期望薪资26K,大家感觉他可以吗...

    原标题:Java硕士京东工作1年,跳槽后他期望薪资26K,大家感觉他可以吗 来自公众号: 我是程序汪 感谢京东在职的粉丝朋友参加这次面试,程序汪帮他模拟面试 欢迎品尝评论吐槽 上次面试回顾 上次帮一个 ...

  4. java boolean 包_java Boolean包装类工作笔记

    本文章为各位介绍一篇关于java Boolean包装类工作笔记,希望这篇文章能够帮助到各位同学,有兴趣的朋友可以进来看看吧. 题目:问下列代码运行结果是什么?  代码如下 复制代码 package q ...

  5. java默认作用域_java中默认的作用域

    Java期末复习题全_其它_高等教育_教育专区.JAVA语言程序设计(第2版)吕凤翥 马浩编著 第一部分 Java 语言概述 1 选择题 1-1 在下列概念中,Java 语言只保留了 ...... ( ...

  6. java substring实现_Java中substring()工作原理

    01.substring() 是干嘛的 sub 是 subtract 的缩写,因此 substring 的字面意思就是"把字符串做个减法".这样一分析,是不是感觉方法的命名还是蛮有 ...

  7. java四大作用域_java的四大作用域是什么?

    Java的四大作用域为:1.PageContext作用域:2.ServletRequest作用域:3.HttpSession作用域:4.ServletContext作用域. Java的四大作用域为:P ...

  8. java四大作用域_Java四大作用域

    上一篇记录了九大内置对象,这一篇写四大作用域 首先按照作用范围来算: 是PageContext(jsp页面) 若在不同作用域有相同名称的对象,则系统的查找顺序为page->request-> ...

  9. java servlet原理_java servlet的工作原理是什么?

    展开全部 配置:编辑好的servlet源文件并不能响应用户请求,还必须将其编译成class文件,将编译好的class文件放到WEB-INF/classes路径下62616964757a68696461 ...

最新文章

  1. 实战 | 多种方法实现以图搜图
  2. Operations Manager 2007 R2系列之单台性能视图
  3. 页面中如何引用外部的HTML(四种方法)
  4. 仅通过崩溃地址找出源代码的出错行
  5. apply与applymap的区别
  6. 仿明日方舟网页html,《明日方舟》干员列表实现
  7. java setDataSource 报红
  8. JDK源码 - BitSet的实现
  9. 这届年轻人,不为情人节烧钱了
  10. 两条曲线所围成的面积_求余弦函数y=cosax在一个周期内与x轴围成的面积
  11. 国内数据中心变革的见证者,揭秘阿里巴巴数据中心技术积淀
  12. 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
  13. 留言板删除功能mysql_用PHP写留言板代码时怎样才能实现删除和修改留言的啊?代码是怎样的?...
  14. 前端页面,引入PingFang SC(苹方简)字体
  15. M1芯片制霸苹果生态?2021 年 Apple 春季新品发布会全记录
  16. 对LuaJIT制作的游戏的简单修改(转载)
  17. 开源KVM管理工具和平台
  18. springboot实现微信退款
  19. traceroute命令详解
  20. [论文阅读笔记14]Nested named entity recognition revisited

热门文章

  1. 作品集四(早期共11件ps)
  2. js合并两个对象的方法
  3. Docker创建Docker Swarm集群节点
  4. 情人节送什么好?高颜值数码好物推荐
  5. 苹果手机声音突然变小是怎么回事_苹果手机听筒声音变小的解决方案(不请自来,刚解决这个问题想分享一下)...
  6. wps怎么排序,需要怎么操作?
  7. 华为实习技术面手撕代码
  8. 高通camera vendor层logic
  9. 做个正方体so easy
  10. httprunner3、pytest、allure资料整理合集