JavaScript基础初始时期分支(018)
Init-Time Branching初始时期分支是一种用做优化的模式。如果某些条件在程序启动后就不再改变,那么我们就只需要在初始时期检查一次就可以了,而不是在每次 需要用到这些条件的时候都检查一次。比如,Javascript经常需要判断运行在哪个浏览器里,这个检查工作通常只需要在初始时期完成就可以了。又如, 假设程序在运行期间需要检查是否支持XMLHttpRequest 对象(Ajax应用时的重要对象),如果运行环境支持,那我们就可以认为程序在运行期间一直都可以使用这个对象。
// BEFORE var utils = { addListener: function (el, type, fn) { if (typeof window.addEventListener === ‘function‘) { el.addEventListener(type, fn, false); } else if (typeof document.attachEvent === ‘function‘) { // IE el.attachEvent(‘on‘ + type, fn); } else { // older browsers el[‘on‘ + type] = fn; } }, removeListener: function (el, type, fn) { // pretty much the same... } };
// AFTER // the interface var utils = { addListener: null, removeListener: null }; // the implementation if (typeof window.addEventListener === ‘function‘) { utils.addListener = function (el, type, fn) { el.addEventListener(type, fn, false); }; utils.removeListener = function (el, type, fn) { el.removeEventListener(type, fn, false); }; } else if (typeof document.attachEvent === ‘function‘) { // IE utils.addListener = function (el, type, fn) { el.attachEvent(‘on‘ + type, fn); }; utils.removeListener = function (el, type, fn) { el.detachEvent(‘on‘ + type, fn); }; } else { // older browsers utils.addListener = function (el, type, fn) { el[‘on‘ + type] = fn; }; utils.removeListener = function (el, type, fn) { el[‘on‘ + type] = null; }; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。