zoukankan      html  css  js  c++  java
  • 一个JavaScript方法的演变

    虽然很早就接触到js了,但写的少,研究得也少,所以还是小菜一个,最近写的一些东西中,觉得有个方法值得推荐的,所以记录下来.分享分享.呵呵.高手请飘过.

    先来看看最初这个方法是什么样子的吧.

    version 1: 

    Version 1#

    在这个版中,按钮上要写上变量名,似乎不方便,也不雅,于是我就想能不能在脚本里绑定方法呢?在园子里找到了李战老师,答案是可以,这就出来了下面一个版本.

    Version 2:

    Version 2#

    在这里面按钮上的变量名没有了,好看了些,不过如果要是多写几次的话就会觉得,每次都function(){return function(){}},这样好像很麻烦,提出来一个方法不是更好么?

    Version 3:

    Version 3#

    这样每次要绑定方法的时候只要调用GetFunction方法就可以了,重用嘛.但是问题又来了,我要是要传参数怎么办呢?

    Version 4:

    Version 4#

    再一次扩展,得到了上面的方法,可以调指定方法,也可以传参数了,似乎没问题了,但是在firefox中,如果我要用到event的话,event是不能用window.event来取的,必须要传event过去或者声名一个隐含参数接收event,真麻烦,再改改吧.

    Version 5:

    Version 5#

    这样,你的方法在firefox中也可以用event了,取鼠标的事件源dom就可以这样了:

    var el = e ? e.target : event.srcElement;

    firefox里的event跟ie里的event有啥区别就不用我说了吧.

    最后我又碰到了这么一个问题,如果我在一个element的onclick上要绑定多个事件怎么办呢?

    Version Final:

    Version Final#

    这里面使用|来分割方法,加入了event,可以绑定多个方法了,也加入了try...catch...避免一个出错,其它的也跟着一起挂.暂时没能想到升级版了.呵呵.

    这个方法的演变过程,大家应该能在我之前发布的文章里看到.


    OK,故事讲完了,有好方法的请指点指点,想拍砖的请开始吧.

    刚刚又发现一个问题,如果我要绑定一个带event和一个不带event的方法该怎么办呢?当然方法是有的.

  • 相关阅读:
    leetcode 92. 反转链表 II
    leetcode记录1 快速排序
    Jmeter入门总结
    Jmeter 元件作用域、集合点、检查点
    Jmeter 实例
    badboy脚本开发
    Jmeter 常用功能介绍
    简单的自创线程池
    多线程
    IO多路复用
  • 原文地址:https://www.cnblogs.com/robot/p/1247748.html
Copyright © 2011-2022 走看看