Stack Overflow上的答案是支持JS函数声明在变量声明之前提升。它基于非常早的Spec版本。答案链接- Order of hoisting in JavaScript 指向其引用的规范的链接- https://www.ecma-international.org/ecma-262/5.1/#sec链接到当前等级库- https://www.ecma-international.org/ecma-262/11
我正在尝试从我的main.py文件运行一个node js脚本,其中有来自不同文件的其他函数。我的主要目标是在一个main.py文件中运行我的应用程序所需的所有函数。我试图使用js2py,但它崩溃了,并显示了一个错误:pyjsparser.std_nodes.Ecma51NotSupported: ArrowFunctionExpression is not supported by ECMA
在一书中(链接是到预发布的版本(第85页),但我有已发布的版本(第6.3章),它说了同样的话),它说任何内部函数都会将this视为ECMA-3中的全局对象(window),但将在ECMA-5中修复。’s the head object }();}
但我认为当前的Chrome、火狐和node.js应该在很大程度上实现ECMA-5,所以我在它们中尝试了上面的代码,它们仍然在func2和func3中打印出全局对象。代码:现在