js随笔记
一、关于自执行函数
当function需要进行多次判断去执行不一样的代码,而这个判断又是固定的,比如浏览器是否支持此操作,或者要兼容手机端和pc端,然后手机端和pc端分别要执行不一样的逻辑,就可以在定义function的时候,先确定当前环境是手机端还是pc端,然后return成相应的函数,这个时候就可以用自执行函数,例如下面的代码
export const on = function (element, event, handler) {
if (element && event && handler) {
if (document.addEventListener) {
element.addEventListener(event, handler, false)
}
else {
element.attachEvent('on' + event, handler)
}
}
}
如果这么写的话,每次调用on()的时候都会进行一次if (document.addEventListener)的判断,所以可以采用自执行函数改成如下代码
export const on = (function () {
if (document.addEventListener) {
return function (element, event, handler) {
if (element && event && handler) {
element.addEventListener(event, handler, false)
}
}
} else {
return function (element, event, handler) {
if (element && event && handler) {
element.attachEvent('on' + event, handler)
}
}
}
})()
这样在定义on的时候就已经确定了浏览器支持哪种方法,调用的时候就不会再进行判断了
-------------------------------------------
学而不思则罔,思而不学则殆
你好,我是【咬轮猫】
-------------------------------------------

浙公网安备 33010602011771号