为了账号安全,请及时绑定邮箱和手机立即绑定

关于闭包的形成是函数嵌套函数,那么这种事件函数嵌套事件函数的算形成闭包吗?

关于闭包的形成是函数嵌套函数,那么这种事件函数嵌套事件函数的算形成闭包吗?

红颜莎娜 2018-12-20 18:13:50
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(对此标准中没有给出明确的规定)。


查看完整回答
反对 回复 2019-01-19
  • 1 回答
  • 0 关注
  • 460 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信