Prototype源码学习之trycatch妙用
还记得看原生态ajax的时候,需要根据浏览器的类型判断用XMLHttpRequest对象还是ActiveXobject对象。仔细研究了上面的代码,终于发现这样写的妙处了,大家认为呢?
var Try = {these: function() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments; try { returnValue = lambda(); break; } catch (e) { } } return returnValue;}};var Ajax = {getTransport: function() { return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false;},activeRequestCount: 0};
页:
[1]