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

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])

        }

    }

}

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

红颜莎娜
浏览 461回答 1
1回答

梵蒂冈之花

算。。函数 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(对此标准中没有给出明确的规定)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript