这段代码为什么会出现循环引用?原理何在?function assignHandler() {
var element = document.getElementById('someElement');
element.onclick = function () {
alert(element.id);
};
}
var element = document.getElementById('someElement');
element.onclick = function () {
alert(element.id);
};
}
var element = document.getElementById('someElement');
alert(element.id);//看看这个值
element.onclick = function () {
alert(element.id);//是否一样
};
}
var elem = document.getElementByid( 'id' );
elem.onclick = function(){
alert('rain-man');
//这里引用了elem元素
};
} Elem引用了它的click事件的监听函数,同样该函数通过其作用域链也引用回了elem元素。这样在IE中即使离开当前页面也不会释放这些循环引用。