JavaScript学习-匿名函数和闭包

来源:互联网 发布:可牛淘宝图片助手 编辑:程序博客网 时间:2024/05/29 18:51

匿名函数

function(){    return 'Lee';// 匿名函数,单独存在会报错}

把匿名函数赋值给变量

var f = function(){    return 'Lee';}// 调用f();

通过自我执行来执行匿名函数

(function(){    alert('Lee');})();
var box = (function(){    return 'Lee';})();alert(box);

闭包

闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数内部创建另一个函数,比如,函数里放一个匿名函数,就产生了闭包。然后,通过另一个函数访问这个函数的局部变量。

function box(){    var user = 'Lee';    return function(){        return user;    }}
box()();
var b = box();b();

示例:

// 使用匿名函数实现局部变量驻留内存中,从而累加function box(){    var age = 100;    return function(){        age++;        return age;    }}var b = box();b();b();alert(b());// 输出103b = null;// 不用时解除引用,等待垃圾回收

由于闭包里作用域返回的局部变量资源不会被立刻销毁回收,可能回占用更多内存。过度使用闭包会导致性能下降,建议在非常有必要的时候才使用闭包。

原创粉丝点击