javascript高级程序设计第22章-高级技巧
22.1.3 惰性载入函数
因为浏览器之间行为的差异,多数 JavaScript 代码包含了大量的 if 语句,将执行引导到正确的代
码中,如下代码:
function createXHR() { if (typeof XMLHttpRequest !== ‘undefined‘) { return new XMLHttpRequest(); } else if (typeof ActiveXObject !== ‘string‘) { // ... some code return new ActiveXObject(arguments.callee.activeXString); } else { throw new Error(‘NO XHR object avaliable‘); } }
function createXHR() { if (typeof XMLHttpRequest !== ‘undefined‘) { createXHR = function() { return new XMLHttpRequest(); } } else if (typeof ActiveXObject !== ‘string‘) { createXHR = function () { // ... some code return new ActiveXObject(arguments.callee.activeXString); } } else { createXHR = function () { throw new Error(‘NO XHR object avaliable‘); } } }
var createXHR = (function () { if (typeof XMLHttpRequest !== ‘undefined‘) { return function() { return new XMLHttpRequest(); } } else if (typeof ActiveXObject !== ‘string‘) { return function() { // ... some code return new ActiveXObject(arguments.callee.activeXString); } } else { return function() { throw new Error(‘NO XHR object avaliable‘); } } })();
原文:https://www.cnblogs.com/yxfboke/p/12843745.html