一个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的方法该怎么办呢?当然方法是有的.

原文地址:https://www.cnblogs.com/robot/p/1247748.html