2008-01-07

EXT 中js语法请教

关键字: js
ext.js文件中有这样一段js代码
(function(){
    var ua = navigator.userAgent.toLowerCase();

    var isStrict = document.compatMode == "CSS1Compat",
        isOpera = ua.indexOf("opera") > -1,
        isSafari = (/webkit|khtml/).test(ua),
        isIE = ua.indexOf("msie") > -1,
        isIE7 = ua.indexOf("msie 7") > -1,
        isGecko = !isSafari && ua.indexOf("gecko") > -1,
        isBorderBox = isIE && !isStrict,
        isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
        isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
        isLinux = (ua.indexOf("linux") != -1),
        isSecure = window.location.href.toLowerCase().indexOf("https") === 0;
})();


这段代码应该是加载后自动执行,不知道这没写的用以何在?是不是为了防止命名冲突?
评论
hax 2008-01-07
closure几乎总是形成的,上面这个例子也不例外。只是是否利用得到closure的好处的问题。
radar 2008-01-07
sp42 写道
我认为是。
见D.C对闭包的定义:
引用
The scope that an inner function enjoys continues even after the parent function have returned.

每个function都有自己的scope,也就是自己的closure了


错错!!!
我们不必抠概念, 就上面的代码没有形成闭包。
sp42 2008-01-07
我认为是。
见D.C对闭包的定义:
引用
The scope that an inner function enjoys continues even after the parent function have returned.

每个function都有自己的scope,也就是自己的closure了
Ivan Li 2008-01-07
这是不是所谓的js闭包呢?
sp42 2008-01-07
(function(){})() EXT里用的比较多,个人感觉这也是避免命名冲突的便捷方法。
先声明一些变量,接着Ext.apply()变量到Ext对象
        /** @type Boolean */
        isOpera : isOpera,
        /** @type Boolean */
        isSafari : isSafari,
        /** @type Boolean */
        isIE : isIE,
        /** @type Boolean */
        isIE6 : isIE && !isIE7,
        /** @type Boolean */
        isIE7 : isIE7,
        /** @type Boolean */
        isGecko : isGecko,
        /** @type Boolean */
        isBorderBox : isBorderBox,
        /** @type Boolean */
        isLinux : isLinux,
        /** @type Boolean */
        isWindows : isWindows,
        /** @type Boolean */
        isMac : isMac,
        /** @type Boolean */
        isAir : !!window.htmlControl,
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

Ivan Li
搜索本博客
最近加入圈子
存档
最新评论