gpt4 book ai didi

javascript - 函数参数可以隐藏全局变量吗

转载 作者:行者123 更新时间:2023-11-29 16:16:33 24 4
gpt4 key购买 nike

我在 .js 文件中定义了一个全局变量。:

如果我的函数有一个与全局变量同名的参数,函数不能初始化全局变量:

var myvar;

function init(myvar){
myvar= myvar;
}

但如果我更改变量名,使全局变量和参数具有不同的名称,函数可以初始化全局变量:

var myvar2;

function init(myvar){
myvar2= myvar;
}

(myvar2 然后被正确初始化)。

为什么会这样? javascript 不允许两个变量在不同的范围内具有相同的名称,因此会发生变量阴影?

我认为 js 引擎将能够像 java 一样区分方法作用域和全局作用域(尽管使用 this 关键字)

最佳答案

这是正确的;全局变量被隐藏。想想看。在此声明中:

myvar = myvar;

如果没有阴影,哪个 myvar 是全局的,哪个是本地的?

关于javascript - 函数参数可以隐藏全局变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14568646/

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