关于闭包

原创 2017年08月12日 17:15:56

关于闭包,有很多的文档,其实说白了就是函数里面的返回值是另外一个函数什么是闭包?这就是闭包!

我们知道,在js中,我们可以把函数看成一个盒子,从盒子里面访问外部的变量是可以的,但是怎么从盒子外面访问到里面的变量呢?

这时,就要用到闭包啦!!

function animate(){
var name = "animate";
function cat(){
var color = 'yellow';
alert(color);

               return color
}
return cat();
}
animate();

如上例子,我们调用animate(),就能访问cat()函数里面的color变量;这就是闭包,是不是很简单

下面来说一下闭包一般在啥时候用

1,访问函数内部的变量,如上所示

2.用来保存变量

function animate() {
var name = "animate";
var n = 909;
nadd = function() {
n = n + 1;
};


function cat() {
var color = 'yellow';
alert(n);
return n;
};
return cat;
}
var fns = animate();
fns();
nadd();
fns();

如上所说,animate的变量n;会保存,不会销毁,所以要慎用,而且会占用内存
版权声明:本文为博主原创文章,未经博主允许不得转载。

关于闭包的面试题引发的思考

闭包一直想写个闭包的总结,无奈自己理解的太渣,不敢乱写,最后还是想写一点东西。 关于闭包,在我目前学习的理解中,就是闭包它是会驻留在内存中,不会被js垃圾回收机制清除,因此它也是模拟的全局变量,也就...
  • qq_36008914
  • qq_36008914
  • 2017年03月19日 23:05
  • 908

闭包题目

var x = 20; var a = { x: 15, fn: function() { var x = 30; return function()...
  • qq_31628337
  • qq_31628337
  • 2017年03月11日 10:38
  • 669

闭包的两个经典例子

1.    下面这段代码想要循环延时输出结果0 1 2 3 4,请问输出结果是否正确,如果不正确,请说明为什么,并修改循环内的代码使其输出正确结果 for (var i = 0; i < 5; +...
  • linyeban
  • linyeban
  • 2017年02月14日 19:40
  • 300

闭包,一个浪漫的故事

闭包,一个浪漫的故事前今天稍微说一下js中的闭包,这是个新手很少遇到的老手不常遇到的问题,他的出现主要是为了帮我们规避问题,另外提供了一种解决问题的新途径,这里先说明一点啊,虽然最近写的文章理论性比较...
  • baidu_25537855
  • baidu_25537855
  • 2017年08月08日 21:36
  • 606

函数依赖闭包及求闭包的算法

F 的闭包: 在关系模式 R , F> 中为 F 所逻辑蕴含的函数依赖的全体叫作 F 的闭包,记为 F + 。   属性集 X 关于函数依赖集 F 的闭包: 设 F 为属性集 U 上的一组函数依赖, ...
  • leopardaa521
  • leopardaa521
  • 2009年05月28日 09:08
  • 7948

js 匿名函数和闭包函数(js练习)

1、首先(保证页面引入了jQuery)创建 2、js创建ul和li标签,并且添加ul标签在body里面...
  • dongfanglanyi
  • dongfanglanyi
  • 2016年03月27日 19:22
  • 666

Java中的闭包(Closure)和回调

上网看了许多关于Java中的闭包(Closure)和回调的博文,总算是弄清晰了,再次写下自己的笔记   1、闭包 定义:闭包允许你将一些行为封装,将它像一个对象一样传来递去,而且它依然能够访问 到原来...
  • woailuo453786790
  • woailuo453786790
  • 2016年06月07日 22:09
  • 2200

前端面试题——js闭包

什么是闭包?以下代码点击 会输出什么?为什么?能大概说明白的话继续问能想出几种解决办法。 ========== 出错:获取HTML元素集合,循环给元素添加事件。在事件响应函数中(event h...
  • chenmoquan
  • chenmoquan
  • 2014年04月02日 10:17
  • 10482

浅谈对闭包的理解

一、什么是闭包 官方解释:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。咋一看,这句话晦涩难懂,一脸懵逼。直接上代码...
  • gq_123
  • gq_123
  • 2016年12月15日 22:32
  • 649

[js]关于闭包与访问数组下标的老生常谈

关于闭包访问下标的问题
  • qq_29712603
  • qq_29712603
  • 2016年05月18日 13:26
  • 902
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于闭包
举报原因:
原因补充:

(最多只允许输入30个字)