浏览 3871 次
锁定老帖子 主题:EXT 中js语法请教
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-07
(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; })(); 这段代码应该是加载后自动执行,不知道这没写的用以何在?是不是为了防止命名冲突? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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, |
|
返回顶楼 | |
发表时间:2008-01-07
这是不是所谓的js闭包呢?
|
|
返回顶楼 | |
发表时间:2008-01-07
我认为是。
见D.C对闭包的定义: 引用 The scope that an inner function enjoys continues even after the parent function have returned.
每个function都有自己的scope,也就是自己的closure了 |
|
返回顶楼 | |
发表时间:2008-01-07
sp42 写道 我认为是。
见D.C对闭包的定义: 引用 The scope that an inner function enjoys continues even after the parent function have returned.
每个function都有自己的scope,也就是自己的closure了 错错!!! 我们不必抠概念, 就上面的代码没有形成闭包。 |
|
返回顶楼 | |
发表时间:2008-01-07
closure几乎总是形成的,上面这个例子也不例外。只是是否利用得到closure的好处的问题。
|
|
返回顶楼 | |