<script>标签的全局范围是什么?</script>

时间:2013-07-05 17:37:29

标签: javascript

由于误解,我制作了旗帜并删除了我之前的问题。

我正在开发一个经典的asp项目。

假设您的代码中有很多<script></script>个标记。

例如:

第10行:<script> ..function 1 definition here..</script>

第200行:<script> .. function 2 definition here..</script>

第5000行:<script> ..function 3 definition here..</script>

也在第6000行:我有另一个试图调用function1的标签。

可以不使用* .js文件吗?

例如:

第6000行:

<script> function1(); </script>

<head>标记中未定义这些脚本。

我知道它没用,但我需要知道它有没有任何方法。

希望现在更清楚了!

3 个答案:

答案 0 :(得分:8)

脚本标记内的任何内容都会立即运行。如果您在第一个脚本元素中定义function a(),那么它将向您的全局命名空间添加一个名为a的函数。您稍后在其他脚本元素中执行的任何JavaScript都可以访问它。

<script type="text/javascript">
   function a() {
       alert('hi');
   }
</script>

...

<script type="text/javascript">
    a();
</script>

答案 1 :(得分:2)

是的,这是可能的,假设function1在全局范围内(例如,不在包装函数/自调用函数中)。

答案 2 :(得分:0)

当然有可能。您只需要在全局命名空间中定义它。 Here是一个可以给你一个想法和更好理解的链接。它还包括非常简单的例子。