在event.js
中,要判断相同的处理程序,这里是代码:
return handler
&& (!event.e || handler.e == event.e)
&& (!event.ns || matcher.test(handler.ns))
&& (!fn || zid(handler.fn) === zid(fn))
&& (!selector || handler.sel == selector)
为什么将(!fn || zid(handler.fn) === zid(fn))
用于(!fn || handler.fn === fn)
以下是zid
var _zid = 1
function zid(element) {
return element._zid || (element._zid = _zid++)
}
如果我必须判断两个函数,a === b
就足够了
为什么要使用zid(a) === zid(b)
?也许有些陷阱?
我不知道为什么?
以下是zepto.js event.js的源代码:https://github.com/madrobby/zepto/blob/master/src/event.js