“范围”如何与HTML文档中的JavaScript的多个脚本标签配合使用?

前端之家收集整理的这篇文章主要介绍了“范围”如何与HTML文档中的JavaScript的多个脚本标签配合使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不太清楚< script>之间发生了什么标签.例如,以下内容给出了Chrome中的参考错误和类型错误
<html>
    <head>
    <script type="text/javascript">
        T.prototype.test = function() {
            document.write("a");
        }
    </script>
    <script type="text/javascript">
        function T() {}
        var v = new T();
        v.test();
    </script>
    </head>
    <body>
    </body>
</html>

但这样做:

<html>
    <head>
    <script type="text/javascript">
    </script>
    <script type="text/javascript">
        T.prototype.test = function() {
            document.write("a");
        }
        function T() {}
        var v = new T();
        v.test();
    </script>
    </head>
    <body>
    </body>
</html>

解决方法

上面的脚本在第一个例子中首先被执行,所以它不知道T,所以这个错误.

在第二个例子中,一旦脚本标记被执行,T就被很好的定义和知道.这是由于功能声明被提升到顶部,无论顺序是什么,它们始终可用.功能声明提升更为深入解释here

吊装后的第二个例子是:

var v,T = function(){}; /* using comma like this is short-hand for: var v; var T = function(){}; */

T.prototype.test = function() {
        document.write("a");
    };

v = new T();
v.test();

猜你在找的HTML相关文章