js 不用重复检测浏览器提高效率
程序员文章站
2022-07-01 23:11:32
这里以拿 添加事件示例 复制代码 代码如下: // 方式1 function addevent(el, type, fn){ if(el.addeventlistener)...
这里以拿 添加事件示例
// 方式1
function addevent(el, type, fn){
if(el.addeventlistener){
el.addeventlistener(type, fn, false);
}else{
el.attachevent('on'+type, fn)
}
}
// 方式2
var addevent = document.addeventlistener ?
function(el, type, fn) {el.addeventlistener(type, fn, false);} :
function(el, type, fn) {el.attachevent('on'+type, fn)};
方式1在函数内做判断,每次给元素添加事件都需判断一次,效率相对低一些。
jquery 1.6.1/prototype 1.7/mootools 1.3/tangram 1.3.6/reg.js/right.js都是采用这种分支方式。
方式2使用了两个匿名函数,仅在初始化时判断一次,后每次调用无须判断。效率相对高一些。
ext/kissy/qwrap 采用这种分支写法。
复制代码 代码如下:
// 方式1
function addevent(el, type, fn){
if(el.addeventlistener){
el.addeventlistener(type, fn, false);
}else{
el.attachevent('on'+type, fn)
}
}
// 方式2
var addevent = document.addeventlistener ?
function(el, type, fn) {el.addeventlistener(type, fn, false);} :
function(el, type, fn) {el.attachevent('on'+type, fn)};
方式1在函数内做判断,每次给元素添加事件都需判断一次,效率相对低一些。
jquery 1.6.1/prototype 1.7/mootools 1.3/tangram 1.3.6/reg.js/right.js都是采用这种分支方式。
方式2使用了两个匿名函数,仅在初始化时判断一次,后每次调用无须判断。效率相对高一些。
ext/kissy/qwrap 采用这种分支写法。
上一篇: netty入门(一)
下一篇: es6 Moduel 默认名与非默认名