javascript - 这段代码怎么被优化了?
PHP中文网
PHP中文网 2017-04-10 16:05:20
[JavaScript讨论组]

这是我在《高级3》看到的一段代码,不明白这种写法怎么被优化了?

    function createXHR () {
        if (typeof XMLHttpRequest != 'undefined') {
            createXHR = function () {
                return new XMLHttpRequest();
            };
        }else if(typeof ActiveXObject != 'undefined'){
            createXHR = function () {
                if (typeof arguments.callee.activeXString != 'string') {
                    var version =["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0"],
                        i,len;
                        
                    for (i=0,len=version.length;i
PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
巴扎黑

这叫lazy assignment

本来呢,createXHR要根据不同环境执行不同代码,但由于运行环境的不变性,每执行一次createXHR就判断一次显然太浪费性能了;如果是一开始就根据不同环境给createXHR赋不同的值,在某些情况下也很浪费,因为你不一定会用到它。

而这种方法,只在第一次执行时判断环境并给createXHR赋上不同的值,这就完美解决了上面的问题。

阿神

惰性载入函数,函数被第一次执行时会被新的函数覆盖,之后执行时就不需要进行浏览器能力检测。

天蓬老师

具体是怎么判断的,还是不懂啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号