gpt4 book ai didi

JavaScript 变量可见性

转载 作者:行者123 更新时间:2023-11-29 20:17:57 25 4
gpt4 key购买 nike

给定这段代码:

function MyClass() {
var v = '1';
this.hi = function() {
console.log('Value of V is ' + v);
var v = '2';
console.log('Value of V is ' + v);
delete(v);
console.log('Value of V is ' + v);
}
}

当我做类似的事情时:

z = new MyClass();
z.hi();

我得到的结果是:

Value of V is undefined 
Value of V is 2
Value of V is 2

我想说明的是为什么会出现这样的结果。

  • 为什么 V 是未定义的(我理解它的方式 - 它可能不正确 - 是在 JS 中它都是定义时,而不是运行时,所以在定义时函数有它自己的变量“v ",但它还没有在第一行定义)。

  • 为什么 V 没有被删除?保持相同的值?

  • 如何从“一级”访问值为“1”的“v”?

  • 我知道如果我在“hi”函数中使用不同的变量名,我将能够在函数中“看到”值为“1”的变量“v”。所以我有点隐藏了原来的那个,但这仍然留下了问题 #3 -- 我如何访问“顶层”?

谢谢!

最佳答案

You can't delete a variable like that .

您无法从封闭范围访问 v,因为内部范围中的 v“隐藏”了它。重命名它。

关于JavaScript 变量可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555278/

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