在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

相關文章
相關標籤/搜索