考虑以下两种方法在jQuery中做同样的事情:
// Approach 1
const $element = jQuery(...);
$element.on('click', () => {
$element.addClass('ok');
});
// Approach 2
const $element = jQuery(...);
$element.on('click', (evt) => {
const $element = jQuery(evt.currentTarget);
$element.addClass('ok');
});
如果稍后在代码中的其他地方调用$element.remove()
,这些方法中的任何一种会导致内存泄漏(或者这两种方法中的任何一种更有可能导致内存泄漏)?
如果我理解正确的话,$element.remove()
方法也应该 destruct 元素上的事件侦听器,我假设如果调用destroy
,应该不会发生内存泄漏.
另一方面,如果没有调用remove
,那么只会从dom中删除$元素(比如说,销毁它的一个父元素并替换为另一个元素),会发生什么?