阻止冒泡行为和闭包
2016-06-16 16:00 改吧 阅读(552) 评论(0) 编辑 收藏 举报阻止事件冒泡行为,要是不阻止的话,点击div的时候也会同时触发body事件
html代码
<body onclick='load()'>
<div onclick='cli()'>
click this
</div>
</body>
css代码
div{
width:200px;
height:200px;
border:1px red solid;
}
js代码
function load(){
console.log('body')
}
function cli(e){
console.log('div');
if ( e && e.stopPropagation ){
e.stopPropagation();
}
else{
window.event.cancelBubble = true;
return false;
}
}
//闭包:内部函数可以访问外部函数的变量
function a(){
var i=0;
function b(){
alert(++i);
}
return b;
}
var c=a();
c();//1 返回的b()但是b()可以访问a函数中的变量i
ps:如果不是因为某些特殊任务而需要闭包,在没有必要的情况下,在其它函数中创建函数是不明智的,因为闭包对脚本性能具有负面的影响,包括处理速度和内存消耗。解决闭包可以使用匿名函数