(转)js闭包初入门
先看一段JS代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function a(){ var num = 0; function b(){ num++; console.log(num); } return b; } var add = a(); add(); // 1 add(); // 2 add(); // 3 |
这段代码的特点:
·函数a里面定义了一个函数b,函数b里面的操作让变量num自加的,最后一句是return b,将函数b返回了;
·add变量是指向了函数a的(有点像C的指针),函数a里面的函数b是被外部变量add引用了,函数b就形成了一个闭包了。
那闭包一般用来干嘛呢?
·在JavaScript模拟实现块级作用域,封装私有变量,防止污染全局变量
举个栗子
(转)js闭包初入门的更多相关文章
- js闭包初体验
/* 闭包的定义:一个内部函数里变量作用域生命周期延续,直接访问一个函数里面的私有属性 闭包的作用:解决变量作用域延续的问题,同时解决全局变量冲突的问题 */ //1.定义内部函数,私有函数 fu ...
- Node.js API 初解读(一)
Node.JS API 初解读 Version: NodeJs v6.2.0 一. Assert 1.简介 Assert模块主要用于断言.如果表达式不符合预期,就抛出一个错误. 该模块用于编写程序的单 ...
- js闭包的作用域以及闭包案列的介绍:
转载▼ 标签: it js闭包的作用域以及闭包案列的介绍: 首先我们根据前面的介绍来分析js闭包有什么作用,他会给我们编程带来什么好处? 闭包是为了更方便我们在处理js函数的时候会遇到以下的几 ...
- 大部分人都会做错的经典JS闭包面试题
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧. 先看题目代码: function fun(n,o) ...
- Js闭包常见三种用法
Js闭包特性源于内部函数可以将外部函数的活动对象保存在自己的作用域链上,所以使内部函数的可以将外部函数的活动对象占为己有,可以在外部函数销毁时依然存有外部函数内的活动对象内容,这样做的好处是可 ...
- js闭包之初步理解( JavaScript closure)
闭包一直是js中一个比较难于理解的东西,而平时用途又非常多,因此不得不对闭包进行必要的理解,现在来说说我对js闭包的理解. 要理解闭包,肯定是要先了解js的一个重要特性, 回想一下,那就是函数作用域, ...
- (原创)JS闭包看代码理解
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- js闭包理解
js闭包的作用是使函数外可以访问函数内部的变量,是通过 在函数内部 定义 访问函数内变量 的函数实现的,内部的一个函数产生一个闭包 function a() { var i=0; return fun ...
- js闭包理解实例小结
Js闭包 闭包前要了解的知识 1. 函数作用域 (1).Js语言特殊之处在于函数内部可以直接读取全局变量 <script type="text/javascript"> ...
随机推荐
- 简单几何(凸包) POJ 1696 Space Ant
题目传送门 题意:一个蚂蚁一直往左边走,问最多能走多少步,且输出路径 分析:就是凸包的变形题,凸包性质,所有点都能走.从左下角开始走,不停排序.有点纠结,自己的凸包不能AC.待理解透凸包再来写.. 好 ...
- MONO 架构
- 关于inf的问题
详见实例 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio&g ...
- [Java] StringBuffer类
http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html 注: StringBuffer类和String一样,也用来代表字符串, ...
- eWebeditor编辑器上传图片的设置程序
protected void Button1_Click(object sender, EventArgs e) { if (this.uploadfile.PostedFile.FileName.E ...
- hdu
这道题因为某些位置要重复走,所以不能用标记的方法,但是为了提高效率,可以采用time[]数组和step[]数组来剪枝,很容易想到,当你从一条路劲走到(x,y)处的时间和步骤 比从另一条路劲走到(x,y ...
- hdu Waiting ten thousand years for Love
被这道题坑到了,如果单纯的模拟题目所给的步骤,就会出现同一个位置要走两次的情况...所以对于bfs来说会很头痛. 第一个代码是wa掉的代码,经过调试才知道这个wa的有点惨,因为前面的操作有可能会阻止后 ...
- php 版本的indexof —— strpos坑爹
如果没有找到则会返回false,如果是在第一位,那么会返回0.那么在if判断的时候会非常麻烦. 我的方法是转化为string,当返回0的时候则是"0",如果返回的是false,则会 ...
- 第五次实验报告 java 网络编程
20145306 第五次 java 实验报告 实验内容 客户端与服务器连接,客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客 ...
- 【液晶模块系列基础视频】5.2.X-GUI字体驱动2
============================= 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:ht ...