gpt4 book ai didi

javascript - 作为函数参数传递的匿名函数的范围

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:36 27 4
gpt4 key购买 nike

给定以下代码,我应该在警报中看到什么?

var a = 100;
function afunc(infunc){
a = 10;
infunc.call();
}

afunc(function(){alert(a)});

我最初的想法是我的浏览器应该警告 100,因为变量 a=100 将在作为参数传递给 afunc 的匿名函数的范围内。但这假设匿名函数实际上是在全局上下文中定义的。显然情况并非如此,因为浏览器会提示 10。那么为什么 a=10 在作用域链中领先于 a=100?

谢谢!

最佳答案

因为您在调用匿名函数之前将 a 设置为 10。 a 实际上是全局的,但您将其设置为 10。

关于javascript - 作为函数参数传递的匿名函数的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11583391/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com