【发布时间】:2010-11-10 13:22:23
【问题描述】:
有没有办法在不同文件中的源代码之间进行函数和变量提升?也就是说,像
//Inside firstfile.js
foo === "bar" //should return true
和
//Inside secondfile.js
function bar() {
this.foo = "bar";
}
我想这是不可能的,因为大多数 javascript 引擎会按顺序分别解析和执行不同的文件,但我不确定。
我不知道这是否在 ECMA 的规范中,因为不同文件的解析并不是语言的一部分。
【问题讨论】:
-
这个好像和吊装没什么关系。
-
@Tim Down 我认为术语“hoist”指的是 Javascript 在其他代码之前解释函数声明。
-
提升是函数声明和
var语句在代码执行之前解析的结果(在变量实例化阶段),这意味着您可以执行foo(); function foo() { alert("foo"); }之类的操作。这个问题没有做那样的事情。 -
@Pointy:是的,我知道,但这无关紧要。没有引用第二个文件中定义的函数。事实上,给定的第二个文件的代码本身就是一个函数表达式,这是一个语法错误。
-
对不起,我有点鲁莽,写了一个函数表达式而不是声明。现在我明白了误解;我已经更正了。
标签: javascript hoisting