阅读文章前, 请先阅读阮一峰老师的这篇文章http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 前人写过的, 而且写得很好, 就没必要重复下去了. 只加一些阮老师的文章里没有说的.顺便总结一下. 引用一句话: ...
分类:
编程语言 时间:
2016-08-16 23:43:32
阅读次数:
193
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变 ...
分类:
编程语言 时间:
2016-08-16 20:03:57
阅读次数:
129
怎么说,闭包大体也就是作用域的问题。闭包的一个用途是用于模块化,保护函数体内的私有变量,如: 模块化的东西不多说,下面说之前一直不解的问题: 原因在于log的参数i为形参,只有在onclick事件触发时,才将i赋值。 简单修改,通过立即执行函数即可将i进行绑定: 1 var $div = $("di ...
分类:
编程语言 时间:
2016-08-15 20:45:21
阅读次数:
152
在进入javascript的面对对象之前,我们先来介绍一下javascript的几个概念。 1、javascript的面向对象的基本概念 2、javascript的返回值 3、javascript原型的概念 4、javascript闭包的概念 如果你打开jQuery的代码,你会发现他使用的就是闭包 ...
分类:
编程语言 时间:
2016-08-12 11:26:25
阅读次数:
172
今天在博客上看到大神所发的帖子,讲解的闭包特性,于是有了悟性,在此跟大家伙儿分享下闭包的神奇性与各种应用。 1:最简单的闭包 是不是感到很简单,认为这只不过是定义了一个函数,输出了一个全局变量而已。其实这就是一个最直观的应用了闭包特性的小例子。再看看下面的例子: 三次输出的a的值是否跟想象中的不一样 ...
分类:
编程语言 时间:
2016-08-11 16:00:42
阅读次数:
151
最近在学js脚本的一些东西觉得里面有2个知识点比较难理解所以做了如下总结。 1.闭包 简单的理解:一个函数a ,内部有个函数b,那么这个函数b当被作为a函数的返回值得时候被外部的全局变量引用了,那么这就是一个闭包。 官方解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数), ...
分类:
编程语言 时间:
2016-08-11 11:28:58
阅读次数:
211
我们都知道,在函数的外部不能访问函数的内部变量,如下 那如果我偏要访问函数的的内部变量呢? 请看下面代码 通过上面的操作,我们就可以在函数外面访问到函数内部的x了。 所以,上面的inner函数,就是一个闭包, 这是闭包的第一个用途:在函数外部访问函数的内部变量。 闭包第二个用途是:让某些变量持续存在 ...
分类:
编程语言 时间:
2016-08-08 14:16:17
阅读次数:
129
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 9 ...
分类:
编程语言 时间:
2016-08-07 08:30:50
阅读次数:
136
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 9 ...
分类:
编程语言 时间:
2016-08-07 06:11:29
阅读次数:
180
1.闭包的理解:我的理解是,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。(注:本段摘抄自阮一峰的网络日志?学习Ja ...
分类:
编程语言 时间:
2016-08-06 00:33:55
阅读次数:
151