垃圾回收时,分配给“无引用” DOM元素的事件侦听器会发生什么情况?

时间:2019-04-23 02:10:34

标签: javascript

Similar question

上面的链接是我要问的类似问题。但是我找不到关于该答案的任何官方参考。

public uploadImage() {
    const input: HTMLInputElement = document.createElement('input');
    input.type = 'file';
    input.accept = 'image/png';
    const onChange = () => {
      const file = input.files[0];
      const reader = new FileReader();

      const onError = () => {
        reader.abort();
        alert('image loading failed');
      };

      const onLoadEnd = (evt) => {
        if (evt.target.readyState === 2) {
          this.readImageByBase64(evt.target.result as string);
        } else {
          onError();
        }
      };

      reader.addEventListener('loadend', onLoadEnd);
      reader.addEventListener('error', onError);
      reader.readAsDataURL(file);
    };
    input.addEventListener('change', onChange);
    input.click();
}

根据上述问题的答案,由于input变量和reader变量是函数范围的,因此事件侦听器将从元素以及onLoadeEndonError中移除还会收集垃圾吗?如果是,是否有任何背景信息或参考?(更着重于除去事件侦听器,然后进行垃圾回收)

0 个答案:

没有答案