gpt4 book ai didi

javascript - 但是 var 不是针对局部变量的吗?

转载 作者:行者123 更新时间:2023-11-30 07:27:37 25 4
gpt4 key购买 nike

This是我的代码:

var markers={};
example();

function example() {
var myFunct = function () {
alert("hello");
};

markers["myIndex"] = myFunct;
}

markers["myIndex"]();

如您所见,myFunct 是“var”(因此,当 example() 完成时,它将被销毁,因为它是本地的)。但实际上,访问markers["myIndex"](),函数被引用了,我就可以访问了。为什么?

最佳答案

这并不像您期望的那样工作。换句话说,当 example() 完成时,myFunct 不会被销毁,因为在外部范围的变量中仍然有对该函数的引用,markers

如果在 example() 末尾没有其他引用它,或者如果只有具有相同或更小范围的变量引用它,那么它会被“销毁”的唯一方法,前提是这些变量也遵循相同的规则,并且没有被外部变量引用。

关于javascript - 但是 var 不是针对局部变量的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197320/

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