JavaScript是否在全局范围内的不同<script>中运行?</script>

时间:2013-11-01 22:25:35

标签: javascript html

我在HTML文件中有这样的情况:

<script>
  var my_function = function(param)
  {
    alert(param);
  }
</script>

<div>
  <!-- snip -->

  <script>
    $(function() {
      my_function("Hello world!");
    });
  </script>
</div>

my_function段中<script>是否在范围内? my_function不在全球范围内吗?

3 个答案:

答案 0 :(得分:3)

是的,它会是,因为它在全局对象上(如window.my_function)。

它也将“在范围内”(检查不是很有意义,但delete window.my_function将不起作用,例如)。

答案 1 :(得分:1)

页面上执行的所有脚本共享相同的文档和窗口元素。是的它们按顺序执行,它们都在文档范围内。

答案 2 :(得分:1)

代码中定义的

my_function已添加到global范围。它将在所有情况下都可用。这也是图书馆如何使用的方式。考虑脚本标记包含代码内联的可执行代码:

<script>code</script>

或引用远程代码:

<script src="my_code.js"></script>

因此,当您向html页面添加jQuery或backbone等脚本时,您实际上是将其内容添加到页面执行上下文中,并可以从您自己的代码中访问它们。