在html元素中定义事件时,注意作用域链的不同

本文详细解析了HTML元素中定义事件时的作用域链,包括不同情况下的作用域变化及影响,通过实例展示了作用域如何影响事件行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在html元素中定义事件时

1、如果不是调用的函数,那么这里的作用域链是:

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

例如:

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

<script>

    var node = document.getElementById('fp')

    node.age = 12;

    age = 13

</script>

结果:12

2、如果是调用的函数,由于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

3、如果是在JS中定义事件,那作用域链也是调用对象----->>window

转载于:https://my.oschina.net/u/1992917/blog/361784

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值