我知道运行JavaScript代码时有两个阶段:创建阶段和执行阶段。
这说明了下一个代码:
function foo() {
console.log("foo1");
}
foo();
function foo() {
console.log("foo2");
}
控制台中的输出为:
foo2
这很有意义,因为首先会扫描代码,然后在第二阶段执行代码。
但是,如果我在HTML文件中声明了三个.js文件,如下所示:
<html>
<head></head>
<body>
<script src="script.js"></script>
<script src="script1.js"></script>
<script src="script2.js"></script>
</body>
</html>
script.js,script1.js和script2.js分别如下所示
script.js:
function foo() {
console.log("foo1");
}
script1.js:
foo();
script2.js:
function foo() {
console.log("foo2");
}
控制台中的输出为:
foo1
我希望foo2。
为什么不同的文件处理方式不同?我以为引擎会扫描包含的.strongs文件中的 ALL ,创建执行上下文对象,然后执行功能。基本上,我认为JavaScript函数(也称为对象)位于不同的文件中而不是单个文件中也没有任何区别。
谢谢您的解释。