我有一个正在加载两个脚本的部分。第二个脚本调用第一个脚本中的一个函数......两个脚本都使用“use strict;” 在顶部。当第二个脚本调用第一个脚本中的函数时,我得到一个“未捕获的 ReferenceError函数名称未定义”。
起初我认为这与脚本的顺序有关,但经过一些调试后,我发现脚本以正确的顺序执行。部分通过 jquery 异步调用加载,并仅附加到当前视图。此外,我可以在 chrome 的调试器中调用第一个脚本的函数,直到第二个文件被加载。
我有点发疯了,把所有的东西都砍掉了,它还在发生。这就是我正在使用的...
脚本 1
"use strict";
var firstScript = function () {
alert("first");
};
脚本 2
"use strict";
var secondScript = function () {
alert("second");
};
阿贾克斯调用
$.ajax({
type: "post",
url: "/../SomeController/SomeAction",
success: function (content) {
$("#someDiv").html(content);
}
});
部分的
<script src="~/Some/Folder/Js/Script1.js"></script>
<script src="~/Some/Folder/Js/Script2.js"></script>
页面加载后,我打开 chrome 调试器并执行“firstScript()”或“secondScript()”会引发相同的错误。
但是,如果我取出use strict;
两个文件,它们都可以工作。这里到底发生了什么?