博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重写自己,减少判断 ---- 引发的思考
阅读量:7246 次
发布时间:2019-06-29

本文共 1778 字,大约阅读时间需要 5 分钟。

重写自己如何减少判断?其实我也是学习别人的代码,才明白的。

看看下面的方法,方法名在内部都重新指向了处理代码,具体代码:

//兼容的绑定事件方法        function addHandler(target, eventType, handler) {            //重写自己            if (target.addEventListener) { //DOM2 Events                 addHandler = function (target, eventType, handler) {                    target.addEventListener(eventType, handler, false);                };            } else { //IE                 addHandler = function (target, eventType, handler) {                    target.attachEvent("on" + eventType, handler);                };            }            //关键,调用新方法,重写自己,减少判断,第二次调用时,使用新方法,没有判断            addHandler(target, eventType, handler);        }        function removeHandler(target, eventType, handler) {            //o//重写自己             if (target.removeEventListener) { //DOM2 Events                 removeHandler = function (target, eventType, handler) {                    target.addEventListener(eventType, handler, false);                };            } else { //IE                 removeHandler = function (target, eventType, handler) {                    target.detachEvent("on" + eventType, handler);                };            }            //关键,调用新方法,重写自己,减少判断,第二次调用时,使用新方法,没有判断            removeHandler(target, eventType, handler);        }

一般人的写法是这样:

function addHandler(target, eventType, handler) {                      if (target.addEventListener) { //DOM2 Events                 target.addEventListener(eventType, handler, false);            } else { //IE                 target.attachEvent("on" + eventType, handler);            }                   }

虽然多了几行代码,但思想完全不一样,一般人写的,每次绑定必然后判断,可人家写的就只有一次判断!!!只有一次!!!

看完上面的代码,你是否有一种想法(^_!),不不是想干坏事啊?后果自己承担啊!就当我什么都没说过。

如果你有其他想法,不要忘记告诉我啊。

 

出处:https://blog.csdn.net/xuexiaodong009/article/details/51832056

你可能感兴趣的文章
Spring 循环依赖
查看>>
sencha touch 在线实战培训 第一期 第二节
查看>>
Mirror--使用证书配置镜像模板
查看>>
Caused by: java.lang.OutOfMemoryError: PermGen space
查看>>
Step by Step 設定 TFS 2012 Create Team Project 權限 - 避免 TF218017、TF250044
查看>>
ArcGIS 10 安装程序及破解文件
查看>>
C#中读写JSON风格的配置信息
查看>>
Spring-Context之一:一个简单的例子
查看>>
(转)S5PV210 三个Camera Interface/CAMIF/FIMC的区别
查看>>
(转)x264重要结构体详细说明(1): x264_param_t
查看>>
struct和typedef struct
查看>>
9.5 在 C# 中使用 F# 库
查看>>
2016第6周六
查看>>
Windows 下 绿化 Oracle
查看>>
利用京东云擎架设免费Wordpress 博客(git方式)
查看>>
Linux开发环境搭建与使用——ubuntu更新设置
查看>>
POJ 3740 Dancing Links
查看>>
iOS开发--使用NSMutableAttributedString 实现富文本
查看>>
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
查看>>
iOS开发小技巧--TableView Group样式中控制每个section之间的距离
查看>>