为什么在zepto.js中使用(!fn || zid(handler.fn)=== zid(fn))到(!fn || handler.fn === fn) - event.js?

时间:2017-07-27 03:37:36

标签: javascript function javascript-events zepto

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

0 个答案:

没有答案