覆盖现有的JavaScript函数

时间:2015-07-30 12:57:04

标签: javascript global

我有一个名为GlobalAll()的现有全局JavaScript函数。默认情况下,此功能在每个页面上加载。 function GlobalAll(){alert("I am Global!");} 此功能不返回任何内容。在某些页面上,我想重新定义此功能,以便提醒“我是本地人!”相反或根本没有警觉。函数名称需要保持不变,而不仅仅是警告某些内容。

因此,从技术上讲,我们需要的是重写/覆盖此全局函数,并在特定页面中使用相同的名称调用它。

任何解决方案?

3 个答案:

答案 0 :(得分:3)

由于DOM从上到下依次加载,只需将其重新定义在最初定义它的位置以外的地方。

所以:

<body>

<script src="something.js"></script> <!-- defines GlobalAll() -->
<script>    
  function GlobalAll() {
    alert('I am local');
  }
</script>

</body>

答案 1 :(得分:0)

您可以在每个页面上定义GlobalAll的专用行为。只需确保新定义位于旧定义之后,javascript应使用较新的定义。

答案 2 :(得分:0)

让我们支持你有一个名为global.js的javascript文件。在其中,您有一个GlobalAll函数:

function GlobalAll() {
    alert("I am Global");
}

让我们假设你有这个HTML:

<html>
    <head>
        <script type="text/javascript" src="/js/global.js"></script>
    </head>
    <body>
    </body>
</html>

您正在某个地方呼叫GlobalAll,因此您必须拥有以下内容:

<html>
    <head>
        <script type="text/javascript" src="/js/global.js"></script>
        <script type="text/javascript">
            GlobalAll();
        </script>
    </head>
    <body>
    </body>
</html>

此提醒I am Global。您需要在最初定义之后覆盖该函数,以确保您的本地函数覆盖全局,并且在调用之前需要覆盖该函数,以确保在调用它时使用正确的实例:< / p>

<html>
    <head>
        <script type="text/javascript" src="/js/global.js"></script>
        <script type="text/javascript">
            function GlobalAll() {
                alert("I am Local");
            }
            GlobalAll();
        </script>
    </head>
    <body>
    </body>
</html>