本文共 1435 字,大约阅读时间需要 4 分钟。
高级JS编程中的惰性思想:能一次性完成的任务,不需要多次执行。
在实际项目开发中,惰性思想能够显著提升效率。以下是一个典型案例:获取CSS属性值的方法。
var utils = (function() { var flag = 'getComputedStyle' in window; function getCss(attr) { var val = null, reg = null; if (flag) { val = window.getComputedStyle(this, null)[attr]; } else { if (attr === 'opacity') { val = this.currentStyle['filter']; reg = /^alpha\(opacity=(\d+(?:\.\d+)?)\)$/; val = reg.test(val) ? reg.exec(val)[1]/100 : 1; } else { val = this.currentStyle[attr]; } } reg = /^(-?\d+(\.\d+)?)((px|pt|em|rem)?$/); return reg.test(val) ? parseFloat(val) : val; } return {getCSS: getCSS};})();
应用场景:
getComputedStyle
。opacity
属性,并通过正则表达式转换filter
值。调用示例:
utils.getCSS.call(curEle, 'width');
在实际开发中,好多方法需要逐次尝试才能找出最终可用的版本。以下是一个典型案例:创建AJAX对象的兼容性处理。
function createXHR() { var xhr = null, flag = false, ary = [ function(){return new XMLHttpRequest();}, function(){return new ActiveXObject('Microsoft.XMLHTTP');}, function(){return new ActiveXObject('Msxml2.XMLHTTP');}, function(){return new ActiveXObject('Msxml3.XMLHTTP');} ]; for (var i=0; i
核心思想:
createXHR
,避免重复判断。这样的方法在处理浏览器兼容问题时,能够显著降低调试成本和开发复杂度。
转载地址:http://laymz.baihongyu.com/