日期:2014-05-16  浏览次数:20311 次

ExtJS学习笔记一——javascript作用域
一直没有搞懂闭包的用法,最近在看extjs的源码时又有了更进一步的理解。
闭包的原理我就不再阐述,大家如果有不明白的,可以上网查阅,它的原理和写法网上一大堆。这里我主要讲解一上它的主要用法。

(1)在定义一个方法时,如果使用到另外一个方法还没有声明,那最好此方法使用闭包,这样带来的一个好处时,js代码初始化加载时,可以让浏览器在解析此方法时不会因为方法未声明而出现加载异常,等到使用到此方法时,也会动态解决此方法体,也就是闭包中的内容。例如:
extend: function() {
            return function(subclass, superclass, overrides) {
                    。。。
                    if (Ext.isObject(superclass)) {
                    。。。
            };
        }()
这里声明extend方法前使用到了isObject方法,此方法也还未声明,所以就通过闭包的方式进行编码,声明时此方法自运行返回一个方法体,并且在使用到此方法时,才会解决方法体中内容。