在html元素中定义事件时,注意做用域链的不一样

在html元素中定义事件时html

一、若是不是调用的函数,那么这里的做用域链是:node

调用对象---->事件源---->父元素----->>document----->window函数

例如:spa

<input type="text" onclick="alert(age)" id="fp"/>htm

<script>对象

    var node = document.getElementById('fp')事件

    node.age = 12;ip

    age = 13作用域

</script>get

结果:12

二、若是是调用的函数,因为JS的词法做用域(函数在定义它的做用域中执行,而不是在调用它的做用域中执行),那么这里的做用域链是:调用对象----->>window

例如:

<input type="text" onclick="msg()" id="fp"/>

<script>

    var node = document.getElementById('fp')

    node.age = 12;

    age = 13

    function msg(){

        alert(age);

    }

</script>

结果:13

三、若是是在JS中定义事件,那做用域链也是调用对象----->>window

相关文章
相关标签/搜索