返回大旺国际登录网站

Javascript闭包(Closure)使用基础教程

时间:2015-03-06 21:44来源:大旺国际登录网站www.zhixing123.cn 编辑:麦田守望者

Closure中文翻译为闭包.字面上来理解就是”封闭的包”.(这是一句废话)
闭包是什么?
书面说明为: 所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
我认为闭包就是能够读/写函数内部的某些变量的子函数,并将这些变量保存在内存中.

闭包的作用
上面的概念中已经提到过,主要就是为了读/写函数内部的某些变量,并将它保持在内存中.可能这样讲未必这么容易理解,下面让大家来看一些例子:
1,读取警察的生命值

function PoliceMan() {
    //定义初始生命值
    var lifeEnergy = 100;
    //显示当前生命值
    function showLifeEnergy() {
        alert(lifeEnergy);
    }
    return showLifeEnergy;
}

//创建一个警察
var pm = new PoliceMan();
//显示当前生命值
pm();

 

2,读写/保存 警察的生命值

function PoliceMan() {
    //定义初始生命值
    var lifeEnergy = 100;
    //中弹减少生命值
    InBullet = function(){
        lifeEnergy -= 1;
    }
    //显示当前生命值
    function showLifeEnergy() {
        alert(lifeEnergy);
    }
    return showLifeEnergy;
}

//创建一个警察
var pm = new PoliceMan();
//显示当前生命值
pm();
//中弹减少生命值
InBullet();
//显示当前生命值
pm();

注意事项
由以上例子大家可以看到警察的生命值变量lifeEnergy会一直驻留在内存当中.如果这种方法使用频繁,那么很容易就把机器的内存消耗完.因此建议能用函数的地方就尽量使用函数,而不要使用闭包.

------分隔线----------------------------
标签(Tag):Javascript javascript实例教程 JavaScript源代码 JavaScript基础教程
------分隔线----------------------------
推荐内容
猜你感兴趣
XML 地图 | Sitemap 地图