我试着在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");
}
答案 0 :(得分:12)
很少有人用JavaScript思考的一个方面是 如果你定义了多个功能 同名,然后是最后一个 定义将是实际的 运行。 JavaScript函数不是 多态的功能 许多其他语言都在其中 JavaScript并不关心实际 为函数定义的参数 是不同的,因为它无法区分 在此基础上他们之间。在哪里 您可能拥有的其他语言 myfunc(oneparm)和myfunc(parmone, parmtwo)作为两个独立的功能 与运行依赖的那个 关于传递的参数数量 最后定义的JavaScript将是 无论如何总是一个人跑 参数的数量。
答案 1 :(得分:1)
javascript中的命名函数更像是变量。如果更改变量的值,则不会发生错误,变量只会有一个新值。 javascript中的函数也是如此。
答案 2 :(得分:0)
在JS中,您可以重新定义函数。与另一个函数同名的后续函数将覆盖它。 (视范围而定)
答案 3 :(得分:0)
因为它会被最新的覆盖。
答案 4 :(得分:0)
JavaScript在这些方面非常宽容(比如重新声明变量或函数)。最新的一个隐藏或覆盖以前的。
在您的情况下,我假设在解析html中的function Boo
之后加载了js文件。因此,当您单击按钮时,js文件中Boo
的定义是唯一可用的Boo
。