addEvent和removeEvent优化写法

;(function(){
    /**
     * 初始化分支是一种优化模式,当知道某个条件在整个生命周期内都不会发生变化时,仅对该条件测试一次。
     */

    // 一般写法
    var util = {
        addEvent: function(el, type, fn) {
            if(window.addEventListener{
                el.addEventListener(type, fn, false)
            }else if(document.attachEvent) {
                el.attachEvent(‘on‘ + type, fn);
            }else{
                el[‘on‘ + type] = fn;
            }
        },
        removeEvent: function() {
            // 类似addEvent
        }
    }

    // 优化写法。先定义接口,再实现借口,达到了只需验证一次的目的
    var util = {
        addEvent: null,
        removeEvent: null
    };
    if(window.addEventListener) {
        util.addEvent = function(el, type, fn) {
            el.addEventListener(type, fn, false)
        };
        util.removeEvent = function(el, type, fn) {
            el.removeEventListener(type, fn, false)
        }
    } else if(document.attachEvent) {
        util.addEvent = function(el, type, fn) {
            el.attachEvent(‘on‘ + type, fn)
        };
        util.removeEvent = function(el, type, fn) {
            el.detachEvent(‘on‘ + type, fn)
        }
    } else {
        util.addEvent = function(el, type, fn) {
            el[‘on‘ + type] = fn;
        };
        util.removeEvent = function(el, type, fn) {
            el[‘on‘ + type] = null;
        }
    }
}());
时间: 2024-12-16 01:40:24

addEvent和removeEvent优化写法的相关文章

Xcode4.4(LLVM4.0编译器)中NSArray, NSDictionary, NSNumber优化写法

Xcode4.4(LLVM4.0编译器)中NSArray, NSDictionary, NSNumber优化写法 从xcode4.4开始,LLVM4.0编译器为Objective-C添加一些新的特性.创建数组NSArray,字典NSDictionary, 数值对象NSNumber时,可以像NSString的初始化一样简单方便.妈妈再也不担心程序写得手发酸了. A.   NSArray 首先是非常常用的NSArray,NSMutableArray.NSArray是一个初始化后就固定的静态数组.如果

Java循环的一个优化写法

尽量少的在循环中执行方法调用 正常写法 for(int i=0;i<list.size();i++){ System.out.println(i); } 优化写法 for(int i=0,size=list.size();i<size;i++){ System.out.println(i); }

48条高效率的PHP优化写法

来源:歪麦博客 https://www.awaimai.com/1050.html 1 字符串 1.1 少用正则表达式 能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式, 因为其效率高于正则. 没得说,正则最耗性能. str_replace函数要比preg_replace快得多,strtr函数又比str_replace来得快. 有没有你漏掉的好用的函数? 例如:strpbrk().strncasecmp().strpos().strrpos().stripos().strrip

SimpleDateFormat优化写法

在一个读取数据库数据导出到excel文件的例子当中,每次处理一个时间信息的时候,就需要创建一个SimpleDateFormat实例对象,然后再丢弃这个对象.大量的对象就这样被创建出来,占用大量的内存和 jvm空间. 三种解决方案: 1.需要的时候创建新实例: package com.peidasoft.dateformat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.D

滚动标签 压缩文件下载 与超链接的优化写法

javaScript函数式编程-包含闭包、链式优化及柯里化

本文着重介绍个人理解的函数式编程. 函数式编程个人理解为:以函数为主要载体的编程方式. 好处: 语义更加清晰 可复用性高 可维护性好 作用域局限.副作用少 基本函数式编程: //实现数组中每个单词首字母大写 //一般写法 const arr = ['apple','orange','pear']; for(const i in arr) { const c = arr[i][0]; arr[i] = c.toUpperCase() + arr[i].slice(1); //slice()从已有的

Javascript属性:addEvent()用法浅析

做 web 应用的人,经常会用到 Javascript 来处理页面上的一些事情.表单验证我们不谈,在根据用户使用情况,显示/隐藏,或者执行一段 js function,的时候,我们需要和页面的 DOM 树打交道.看看 Gmail ,发送邮件,按下"发送"钮后,用 Ajax 在后端发送邮件内容,根据返回的状态,在编辑页面的上方直接显示一小段文字"您的邮件已经发送.". 通常的思想,我们会在那个发送按钮里面写上: onclick="javascript:sen

《跨 界 之SQL、PL/SQL优化指南》目录下

目 录 三. 常见不合理的语句........................................................100   3.1). 没有使用绑定变量....................................................100   3.2). 隐含转换............................................................101   3.3). 索引列上进行运算...........

mysql优化之路

下面总结了一些工作常见的sql优化例子,虽然比较简单,但很实用,希望对大家有所帮助.sql优化一般分为两类,一类是sql本身的优化,如何走到合适的索引,如何减少排序,减少逻辑读:另一类是sql本身没有优化余地,需要结合业务场景进行优化.即在满足业务需求的情况下对sql进行改造,已提高sql执行速度,减少响应时间. 例子1: SELECT ID FROM SENDLOG WHERE TO_DAYS(NOW())-TO_DAYS(GMT_CREATE) > 7; 问题:对索引列GMT_CREATE进