尝试访问Function构造函数内部的变量时出现ReferrenceError

0.sh:

阅读有关Function构造函数和function声明之间区别的mdn文档此处指定的示例在浏览器上以及在node.js repl上均可使用,但是在尝试通过文件进行操作时,node.js进程因此错误而崩溃

ReferenceError: x is not defined

这是程序

var x = "bar";

function test() {
    var x = "baz";
    return new Function("return x;");
}

var t = test();
console.log(t());

从带有node.js的文件执行该示例时,此示例可能无法按预期运行的可能原因是什么?

某些性能:

在Node REPL中,您在其中键入代码的词法位置是顶层,相当于<script>在浏览器中的标签顶部键入内容

var在顶层定义的变量将分配给全局对象。因此,在Node的REPL和浏览器中,

var x = "bar";

导致x被分配给全局对象。

但是,相反,当您从文件中运行代码时,例如node bar.js,运行的代码在模块内部-它不在顶层,因此在此类脚本的顶层声明的变量不会分配给全局对象。

在顶层创建的函数是全局函数,因此它只能按词法“查看”在顶层定义的变量。因此,当在Node中将代码作为文件运行时,由于运行的代码范围不是顶级,因此创建的函数x在任何地方都看不到,因此产生了ReferenceError。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试通过反射访问内部类构造函数的参数注释时出现 ArrayIndexOutOfBoundsException

Java | 从构造函数内部访问对象变量?

尝试替换构造函数变量时出错

尝试访问 JNA 函数时出现 IllegalArgumentException

是否可以从Python的构造函数内部增加/访问类变量?

如何从 ServiceBusAttribute 构造函数内部访问环境变量?

在构造函数内部访问构造函数的属性

尝试访问外部函数的结构变量后出现分段错误

尝试在类的构造函数中复制变量时出错

访问函数内部的变量

覆盖变量时如何访问全局构造函数?

从内部类访问const函数时出现分段错误

在构造函数中的独立函数内部访问“ this”

函数内部的Javascript构造函数变量NAN

尝试访问php中的父构造函数时,在PHP的非对象上调用成员函数query()

尝试从内部函数访问函数参数

从函数内部访问循环变量

如何从函数内部访问变量

函数内部的角度访问变量

访问JavaScript函数内部的变量

如何访问函数内部的变量

Python 3-从构造函数内部授予对“ self”变量的外部访问权限合法吗?

获取UndefVarError:尝试在Julia中使用内部构造函数定义结构时未定义新

尝试使用 **kwargs 在函数内部调用函数时出现类型错误?

在构造函数内部访问道具值

尝试构造FileWriter时出现错误

尝试在CloudFormation中的UserData中使用变量时出现错误“一个或多个Fn :: Sub内部函数未指定期望的参数”

从构造器内部初始化实例变量时出现Mockito错误

尝试在junit4中使用参数时,构造函数中出现空参数