具有相同名称的变量和函数破坏

苦涩

在以下代码中:

//global scope
function isValid() {
  return "hello from isValid";
}


function test() {
  //local scope
  var isValid = 9;
  //.....
  isValid();
}

test();

我收到错误:

"TypeError: isValid is not a function
    at test (devicok.js:10:5)
    at devicok.js:12:1
    at https://static.jsbin.com/js/prod/runner-4.1.1.min.js:1:13850
    at https://static.jsbin.com/js/prod/runner-4.1.1.min.js:1:10792"

当我理解 isValid 函数与 isValid 变量在不同的范围内时,为什么会这样该变量似乎覆盖了函数定义。即使它们具有不同的作用域,它们也共享相同的命名空间是问题吗?

jsbin 中出现的代码和错误。

贝尔吉

JavaScript 中没有命名空间——函数和变量以及所有东西都存在于一个中。是的,外部变量被内部声明遮蔽 - 当您isValid在函数中引用时,它是局部变量。其中具有 value 9,而不是函数值,因此在调用时会引发异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

嵌套函数中具有相同名称的变量

dplyr函数如何区分具有相同名称的列和变量?

具有相同名称的Java实例变量和方法

具有相同名称的指针和常规变量

具有相同名称的枚举和类成员函数

具有相同名称的Javascript函数

如何消除具有相同名称的局部静态变量和全局变量的歧义

具有相同名称的局部变量和全局变量及其工作方式?

如何执行列和函数输入具有相同名称的函数?

声明具有相同名称的局部变量时,函数变得不确定

Java-具有相同名称的静态变量和参数

在Ruby中具有相同名称的局部变量和方法?

在C中具有相同名称的extern和global变量

基类和派生类中具有相同名称的静态成员变量

具有相同名称的函数和对象的打字稿定义

具有相同名称但参数和返回类型不同的虚函数

具有相同名称和参数,不同返回类型的C ++成员函数

在Ruby中调用具有相同名称的函数和方法

JAXB编组具有相同名称的元素的变量列表

是否可以创建多个具有相同名称的变量?

算法具有相同名称的新变量

在VIM中收集具有相同名称模式的变量

C ++:具有相同名称的变量(操作顺序)(范围)

python中具有相同名称的函数的子类

具有相同名称的成员函数C ++

在C中具有相同名称的函数

在GO中测试具有相同名称的函数

如何在具有相同名称的变量的静态函数中访问全局静态变量

具有相同名称的Scala对象和特征