对于每次判断条件都相同的多次调用函数,例如检测浏览器是否支持某方法,可以通过惰性载入函数减少if判断次数,提高性能。
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 versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"], i, len; for (i = 0, len = versions.length; i < len; i++) { try { new ActiveXObject(versions[i]); arguments.callee.activeXString = versions[i]; break; } catch (ex) { } } return new ActiveXObject(arguments.callee.activeXString); }; } } else { createXHR = function () { throw new Error("No XHR object available."); }; } return createXHR(); }