gpt4 book ai didi

javascript - 函数调用的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 17:49:33 24 4
gpt4 key购买 nike

在调用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);
}

现在从页面中的某处,我从 common.js 调用 testAbcFunc,期望它调用带有参数的 testAbc,这是 common 函数。但是奇怪的是,JS在没有参数的情况下回调了原始页面中的函数!!

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

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

最佳答案

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

关于javascript - 函数调用的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com