med*_*pal 2 javascript function
在调用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);
}
Run Code Online (Sandbox Code Playgroud)
现在从页面的某个地方,im testAbcFunc从common.js 调用,期望它testAbc使用参数调用,这是常用函数.但奇怪的是,JS在没有params的情况下回调原始页面中的函数!!
我已经在几个小时前调试了这个bug,我尝试了这个简短的代码来重现这个bug,它确实每次都会发生.
注意:如果所有函数都在同一页面中,则会调用正确的函数(带参数),但是当它们在页面和JS文件之间分开时.JS似乎优先考虑页面中的功能,即使它没有参数
JavaScript不支持基于参数的方法重载.如果多个函数具有相同的名称,它只使用最后定义的函数.页面中的版本将覆盖包含的版本.当它适合你时,我假设包含版本(带有参数签名)在原始版本之后内联.
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |