这是我在《高级3》看到的一段代码,不明白这种写法怎么被优化了?functioncreateXHR(){if(typeofXMLHttpRequest!='undefined'){createXHR=function(){returnnewXMLHttpRequest();};}elseif(typeofActiveXObject!='undefined'){createXHR=function(){if(typeofarguments.callee.activeXString!='string'){varversion=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0"],i,len;for(i=0,len=version.length;i
2 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
这叫lazyassignment本来呢,createXHR要根据不同环境执行不同代码,但由于运行环境的不变性,每执行一次createXHR就判断一次显然太浪费性能了;如果是一开始就根据不同环境给createXHR赋不同的值,在某些情况下也很浪费,因为你不一定会用到它。而这种方法,只在第一次执行时判断环境并给createXHR赋上不同的值,这就完美解决了上面的问题。
添加回答
举报
0/150
提交
取消