Javascript 外部对象全局?

Javascript External Object Global?

我正在处理对象和方法,我有一个非常简单的示例用于测试:

var shout = {
  hello: function(variable){
    console.log("Hello " + variable);
  }
};

shout.hello("World");

这很好用。但是,如果我将对象 shout 放在外部文件中,然后 运行 shout.hello("world"); 我什么也得不到:

//external file: test.js
var shout = {
  hello: function(variable){
    console.log("Hello " + variable);
  }
};

<!-- my html document -->
<script src="test.js">
shout.hello("World");
</script>

我做错了什么?

您需要两个单独的 script 标签,带有 src attribute 的标签的内容将被忽略。

<script src="test.js"></script>
<script>
    shout.hello("World");
</script>

来自MDN

script elements with an src attribute specified should not have a script embedded within its tags.

您需要两个单独的 script 标签,一个用于导入外部脚本,另一个用于调用函数,例如:

<script src="test.js"></script>
<script>
shout.hello("World");
</script>