zhongdeming428 / Jerry

A lightweight but useful JavaScript library,just for fun!:memo::sparkles:
https://zhongdeming428.github.io/Jerry/
MIT License
9 stars 3 forks source link

优化添加监听事件的函数 #25

Closed yiidot closed 5 years ago

yiidot commented 5 years ago

多次添加监听事件无需重复判断环境。

zhongdeming428 commented 5 years ago

首先,GitHub 没有及时通知我(也有可能是被我漏掉了 😃 )耽误了很多天,表示抱歉。 另外代码检查没有通过,我 Review 了一下代码,发现有两个疑点:

@yiidot 感谢你的 PR!期待更多~

yiidot commented 5 years ago

@zhongdeming428 我看了下代码,不好意思,是我写错了,我本想写个IIFE,只判断一次环境。 公司电脑文档加密,所以只能贴在这了。:relieved:

const addEvent = (function(window) {
  if (!isInBrowser()) return function() {};
  if (window.addEventListener) {
    return function(el, eventType, callback) {
      el.addEventListener(eventType, callback);
    };
  } else if (window.attachEvent) {
    return function(el, eventType, callback) {
      el.attachEvent('on' + eventType, callback);
    };
  } else {
    return function(el, eventType, callback) {
      el['on' + eventType] = callback;
    };
  }
})(window);
yiidot commented 5 years ago

你的写法也是ok的,不过加载完Jerry后就可以销毁该Helper函数了。 @zhongdeming428

zhongdeming428 commented 5 years ago

@yiidot 两种方案都不会销毁助手函数的啊,除非 addEvent 被销毁了~

另外我觉得非浏览器环境下返回的函数执行的时候时不时应该报个错提示一下?

yiidot commented 5 years ago

@zhongdeming428 嗯,你的做法是对的。:thumbsup:

zhongdeming428 commented 5 years ago

代码已合并, 感谢你的 PR~