码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript - 匿名函数和闭包

时间:2017-09-19 00:12:32      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:变量   读取   占用   var   内存   win   asc   全局变量   项目   

1. 块级作用域

/*
这里是全局环境
*/

//立即执行函数
(function () {
    //这里是块级作用域,外部无法读取function内部的变量,除非将变量赋给window
    var a = ‘hello‘;
    var b = ‘world‘;
    alert(a);             //可以打印a
    window.b = b;    //将b赋给全局
})();

alert(a);     //无法打印a
alert(b);     //可以打印b

  我们一般在写插件的时候,将代码封装在一个立即执行函数里,一般只将一个对象赋给全局供外部使用,这样就避免了插件内部变量污染全局变量。

  在多人协作开发的项目中要尽可能少的使用全局变量和函数,否则很可能导致命名冲突。而将各自的代码封装在各自的作用域中,则互不干扰。

//程序员A的代码
(function () {
    $(function () {
        var a = ‘hello‘;
        alert(a);
    });
})();

//程序员B的代码
(function () {
    $(function () {
        var a = ‘world‘;
        alert(a);
    });
})();

//都得以执行

   在全局作用域中使用块级作用域可以减少闭包占用的内存问题,因为没有指向匿名函数的引用。只要函数执行完毕,就可以立即销毁其作用域链了。

JavaScript - 匿名函数和闭包

标签:变量   读取   占用   var   内存   win   asc   全局变量   项目   

原文地址:http://www.cnblogs.com/xingyazhao/p/7545726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!