JavaScript很多书籍都讲的唧唧歪歪一大堆,不知道讲些什么
1、什么是闭包
-- 函数嵌套函数
-- 内部函数可以引用外部函数的参数和变量
-- 参数和变量不会被垃圾回收机制回收
<script type="text/javascript">
//1.1函数嵌套函数
function Rabbit()
{
function shortHairGirl()
{
}
}
//1.2内部函数可以引用外部函数的参数和变量
function Rabbit2()
{
var name="rabbit";//Rabbit2()执行完毕的时候,js垃圾回收器并没有对其回收
//因为shortHairGirl()对其还有引用
function shortHairGirl()
{
alert(name);
}
return shortHairGirl;
}
var loveShortHairGirl=Rabbit2();
//loveShortHairGirl();
//1.3参数和变量不会被垃圾回收机制回收
function GC()
{
var girl="我是短发美女";
}
GC();//当GC()执行完毕的时候,变量girl就会被js垃圾回收器,节省内存
</script>
2、闭包的好处
--希望一个变量长期驻扎在内存当中,避免全局变量的污染
//2.1没有使用闭包
var girlAge=23;
function IncAge()
{
girlAge++;
alert("短发美女的芳龄是:"+girlAge);
}
//IncAge();//24
//IncAge();//25
function IncAge2()
{
var girlAge=22;
girlAge++;
alert("短发美女的芳龄是:"+girlAge);
}
//IncAge2();//23
//IncAge2();//23
function RabbitLoveGirl()
{
var age=22;
return function(){
age++;
alert(age);
}
}
var girlAge=new RabbitLoveGirl();
//girlAge();
//girlAge();
//如果一个函数放在()中,那么就变成了函数表达式
(
function aaa(){
alert(2);
}
)();
(function(){
alert("shit");
})();
var age=(function(){
var a=10;
return function(){
a++;
alert(a);
}
})();
age();
age();
</script>
3、 闭包需要注意的地方【IE下可能引发内存泄露】,就不举例了。
转载自http://www.cnblogs.com/zjflove/archive/2013/05/13/3076392.html
分享到:
相关推荐
Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包 对于那些使用传统静态...本文将以例子入手来介绍Javascript闭包的语言特性,并结合一点 ECMAScript语言规范来使读者可以更深入的理解闭包。
本文详细介绍了javascript闭包,十分的详尽,推荐给有需要的小伙伴参考下。
主要详细介绍了javascript 闭包的相关资料,十分详尽,需要的朋友可以参考下
闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分,本文将用通俗的语言带您深入理解Javascript闭包的概念。
主要帮助大家理解javascript闭包概念优缺点及应用,帮助大家全面的学习javascript闭包,需要的朋友可以参考下
闭包是ECMAScript一个很重要的特征,但是却很难用合适的定义来描述它。虽然闭包很难清晰地描述,但是,却很容易创建,或者说,不小心创建。然而,闭包的存在其实是有一定的潜在问题的。为了避免“不小心”地创建闭包...
今天在编码时,遇到一个问题,特记录下。希望对朋友有所帮助。
主要介绍了JavaScript闭包函数访问外部变量的方法,本文使用匿名函数来实现在闭包中访问外部变量,需要的朋友可以参考下
主要介绍了多个javascript闭包入门示例,理解了这几个例子,对于闭包,应该可以算是入门了,需要的朋友可以参考下
主要还是继续学习javascript闭包,理解JavaScript的闭包是迈向高级JS程序员的必经之路,需要的朋友可以参考下
闭包机制是JavaScript的重点和难点,本文希望能帮助大家轻松的学习闭包。下面跟着小编一起来看下吧
众所周知,JavaScript没有块级作用域,只有函数作用域。那就意味着定义在函数中的参数和变量在函数外部是不可见的,而在一个函数内部任何位置定义的变量,在该函数内部任何地方都可见
如果你不能向一个六岁的孩子解释清楚,那么其实你自己根本就没弄懂。好吧,我试着向一个27岁的朋友就是JS闭包(JavaScript closure)却彻底失败了
javascript闭包详解 javascript闭包详解 javascript闭包详解
主要介绍了javascript闭包,闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现,感兴趣的小伙伴们可以参考一下
主要介绍了Javascript闭包的概念及用法,以实例形式深入浅出的分析了闭包的功能及使用时的注意事项,非常具有实用价值,需要的朋友可以参考下
主要帮助大家轻松学习掌握Javascript闭包函数,从闭包的含义出发,由浅入深学习Javascript闭包函数,感兴趣的小伙伴们可以参考一下
在函数是一等(first-class)变量的语言中(比如JavaScript),此行为非常重要,因为函数的生命周期决定了函数可以看到的数据元素的生命周期。在此环境中,很容易由于疏忽而在内存中保留比期望的多得多的数据,这样做...