document.onclick=function(ev){ var a=ev alert(a) console.log( typeof a) for ( var attr in a ){ console.log(attr +"="+ a[attr]) } var div1=document.getElementById("div1"); div1.onclick=function(ev){ ev.cancelBubble=true; var b=ev alert(a==b) console.log( typeof a) for ( var attr in a ){ console.log(attr +"="+ a[attr]) } }}//关于闭包的形成是函数嵌套函数,那么这种事件函数嵌套事件函数的算形成闭包吗?
1 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
算。。函数 div.onclick
在函数 document.onclick
的作用域上有一个闭包。
A closure is a combination of a code block and data of a context in which this code block is created.
闭包是基于词法作用域书写的自然结果。
严格来说,所有函数都应该是闭包,毕竟在 ECMAScript 2017 (ECMA-262 8th) 中,每个
FunctionExpression
算法都定义了设置closure
的步骤。但在实际中,出于优化的目的,当函数没有使用自由变量时,实现层可能不会保存parent scope chain
(对此标准中没有给出明确的规定)。
添加回答
举报
0/150
提交
取消