当调用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(使用前将#替换为@)