函数调用时的奇怪行为

2023-12-31

当调用Javascript函数时,似乎JS优先考虑不带参数的函数,即使我有相同的带参数的函数名。 奇怪的行为仅发生在以下情况:

我有一个嵌入了 Javascript 的 HTML 页面,如下所示:

 //Javascript in the page  
 function testAbc(){
       alert('testAbc no params');
 }

 //Javascript in common.js
 function testAbc(x){
      alert('testAbc with param:'+x);
 }
 function testAbcFunc(x){
      testAbc(x);
 }

现在,我从页面的某个地方打电话testAbcFunc来自 common.js 期望它调用testAbc带参数,这是通用函数。但奇怪的是,JS在没有params的情况下回调了原页面中的函数!

我已经调试这个错误几个小时了,我尝试了这个简短的代码来重现该错误,它确实每次都会发生。

注意:如果所有函数都在同一页面中,则将调用正确的函数(带参数),但是当它们在页面和 JS 文件之间拆分时。 JS好像优先考虑页面中的功能即使没有参数


JavaScript 不支持基于参数的方法重载。如果多个函数具有相同的名称,它只使用最后定义的函数。页面中的版本将覆盖包含的版本。当它对你有用时,我假设包含版本(带有参数签名)是内联的after原本的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数调用时的奇怪行为 的相关文章