1 什么是闭包?

在我看来,闭包大体类似于同心圆里的小圆。小圆属于大圆,所以可以接触到属于大圆的一切。但小圆内的东西被小圆边界包围,所以大圆无法接触到,有点像单向玻璃。


function outside(a) {function inside(b) {return a*b;}return inside;
}
fn_inside = outside(1); // 可以这样想:给一个函数,使它的值加3
result = fn_inside(2); // returns 2
result1 = outside(1)(2); // returns 2

2 闭包有什么用

闭包就像一座桥梁,使外部可以在一定权限下访问到函数内部的变量等。有点类似于java类的get set方法。

var createPeople = function(name) {var age = 19;return {setName: function(newName) {name = newName;},getName: function() {return name;},setAge: function(nage) {//函数中的this指向调用这个函数的对象setAge被createPeople调用,所以this是createPeoplethis.age = age;//如下会发生命名冲突(遵循就近优先原则,age均为setAge的参数)//age = age;},getAge: function() {return nage;}}
}
var people = createPeople("Lili");
console.log(people.getName());
people.setName("HanMei");
console.log(people.getName());
//people.setAge(18);
console.log(people.getAge());

JavaScript闭包初相识相关推荐

  1. Javascript闭包和闭包的几种写法及用途

    好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法.用法和用途.  一.什么 ...

  2. JavaScript学习总结(十六)——Javascript闭包(Closure)

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.很早就接触过闭包这个概念了,但是一直糊里糊涂的,没有能够弄明白JavaScript的闭包到底是什 ...

  3. 全面理解Javascript闭包和闭包的几种写法及用途【转】

    一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...

  4. 全面理解Javascript闭包和闭包的几种写法及用途

     一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...

  5. JavaScript闭包如何工作?

    您将如何向了解其闭包概念(例如函数,变量等)的人解释JavaScript闭包,但却不了解闭包本身? 我已经在Wikipedia上看到了Scheme示例 ,但是不幸的是它没有帮助. #1楼 我知道已经有 ...

  6. 让你分分钟理解 JavaScript 闭包

    原文:https://www.cnblogs.com/onepixel/p/5062456.html 让你分分钟理解 JavaScript 闭包 闭包,是 Javascript 比较重要的一个概念,对 ...

  7. 全面理解Javascript闭包和闭包的几种写法及用途--转载自https://www.cnblogs.com/yunfeifei/p/4019504.html...

    全面理解Javascript闭包和闭包的几种写法及用途 好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一 ...

  8. [转载]深入理解JavaScript闭包(closure)

    最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说别说理解闭包了,就连文字叙述都很难看懂.撰写此文的目的就是用最通俗的文字揭开Java ...

  9. [转]Javascript 闭包

    [转]Javascript 闭包 简介 Closure 所谓"闭包",指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 闭 ...

最新文章

  1. Java类加载机制:双亲委托模型
  2. P3812 【模板】线性基
  3. Samrty技术的 初步了解
  4. 数组排序思想———选择排序
  5. [USACO08DEC]在农场万圣节Trick or Treat on the Farm
  6. uva 11464 Even Parity
  7. java jquery基础_day20:JQuery基础(超系统的JavaWEB全套教程)
  8. html dot标签,html – CSS Dot符号命名约定
  9. 如何理解Java的类变量、成员变量、常量、类属性、实例属性、字段(field)、成员方法、类方法
  10. ftp协议是一种用于_______的协议_网络安全常见协议解析:TCP、UDP、HTTP、FTP、SMTP等之间的区别...
  11. SqlServer2012自增主键跳跃增长的问题解决方案
  12. 瑞银报告 | 美国银行业科技支出:凡有的,还要加给他,叫他有余...
  13. Subsonic简单的语法整理
  14. BlockUI详细用法
  15. Symbol数据类型
  16. VS2003下载地址
  17. BaseAdataer基本设配器
  18. 小程序学习 - 02 微信小程序案例实践
  19. 双复合摆的动力学【牛顿法---拉格朗日法】两种方式
  20. Gtest 测试指导 入门基础(A)

热门文章

  1. 如何让五层楼都有wifi?
  2. 【Java开发规范】禁止在 foreach 循环里进行元素的 remove/add 操作
  3. electronic-wechat高分屏下的缩放修改
  4. php取mysql某列的值,php – 获取MYSQL中某些列为null的表中的值
  5. php截取一个中文字符,php中的一个中文字符串截取函数
  6. sql azure 语法_Azure SQL Server自动故障转移组
  7. ssas表格模型 权限控制_如何使用DAX函数查询SSAS表格模型数据库
  8. Java内存区域-运行时数据区域
  9. Flask详解(下篇)
  10. 树链刨分 HDU 3966