0

我制作了这个很棒的插件:https ://github.com/suprMax/Zepto-onPress

除了一个小细节之外,它还可以完美地工作。当我获得回调函数时,我需要将它与我的真实事件处理程序一起存储,以便当有人试图删除事件处理程序并为我提供原始回调时我可以将其分离。所以基本上我需要能够为每个元素存储多个键值对,其中键应该是函数,值也是函数。我试图做到这一点,但现在脚本在内部进行了这个:

(function(){}).toString()

这不是一个最好的主意,因为我可以删除错误的事件处理程序,因为:

(function(){}).toString() === (function(){}).toString(). 

我想有更好的方法来做到这一点。任何建议都非常受欢迎。

4

1 回答 1

0

唯一安全且高效的方法是将您的函数存储在一个数组中(indexOf 完美地工作,因为它会搜索指针值)并使用数组索引将另一种方法推送到另一种方法。

var fn1store = [];
var fn2store = [];
function pushFunctions(fn1, fn2) {
   var p;
   if (p = fn1store.indexOf(fn1) > -1) {
     teardown(fn2store[p]);
   } 
   p = fn1store.push(fn1) -1;
   fn2store[p] = fn2;   

}
于 2012-04-12T13:41:34.423 回答