javascript中具有相同名称的函数

时间:2010-05-26 09:40:41

标签: asp.net javascript html

我试着在js文件上编写一个函数,并在页面中使用相同的名称编写另一个函数。我期待一个错误,但没有出现错误,我只得到js文件中的函数来执行。这是可能的。即使我在一个单独的js文件中编写一个函数,一切都在一个html文件中呈现。那么怎么可能呢?

<script type="text/javascript" language="javascript" src="JScript.js" />
<script language="javascript">
    function Boo()
     {
        alert("Hai new");
    }
</script>

<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Button runat=server OnClientClick="Boo();" Text="Click" />
    </div>
    </form>
</body>

并在js文件中

function Boo() {
    alert("Hai");
}

5 个答案:

答案 0 :(得分:12)

  

很少有人用JavaScript思考的一个方面是   如果你定义了多个功能   同名,然后是最后一个   定义将是实际的   运行。 JavaScript函数不是   多态的功能   许多其他语言都在其中   JavaScript并不关心实际   为函数定义的参数   是不同的,因为它无法区分   在此基础上他们之间。在哪里   您可能拥有的其他语言   myfunc(oneparm)和myfunc(parmone,   parmtwo)作为两个独立的功能   与运行依赖的那个   关于传递的参数数量   最后定义的JavaScript将是   无论如何总是一个人跑   参数的数量。

http://javascript.about.com/library/blpolyfunc.htm

答案 1 :(得分:1)

javascript中的命名函数更像是变量。如果更改变量的值,则不会发生错误,变量只会有一个新值。 javascript中的函数也是如此。

答案 2 :(得分:0)

在JS中,您可以重新定义函数。与另一个函数同名的后续函数将覆盖它。 (视范围而定)

答案 3 :(得分:0)

因为它会被最新的覆盖。

答案 4 :(得分:0)

JavaScript在这些方面非常宽容(比如重新声明变量或函数)。最新的一个隐藏或覆盖以前的。

在您的情况下,我假设在解析html中的function Boo之后加载了js文件。因此,当您单击按钮时,js文件中Boo的定义是唯一可用的Boo