我在我的jsp文件中包含了两个.js文件。
每个文件都有一个名为getOrderType的函数,但是一个接受单个参数而另一个接受3.具有3个参数的函数首先被导入。当函数被调用时on' onclick'具有三个参数的事件,仍然会调用单个参数函数。
我认为,是否由于导入文件的顺序?如果没有,我该如何解决冲突?
在改变进口顺序时,冲突仍然存在,但我仍然需要完整的证明解决方案
答案 0 :(得分:2)
在JavaScript中,函数没有这种多态行为,如果你想实现类似的东西,你必须自己实现调度,类似于:
function a(x,y,z) {
typeof(z) == 'undefined' ? b(x,y) : c(x,y,z);
}
答案 1 :(得分:0)
在JavaScript中你不能拥有各种函数依赖于参数,但是你可以存储对函数的引用并根据参数长度做出决定:
var f1 = (function sum(a, b, c) {
console.log('f1 function called');
console.log(arguments.length); // 3
});
var f2 = (function sum(a) {
console.log('f2 function called');
console.log(arguments.length); // 1
});
function manager(a, b, c) {
if(arguments.length == 3) {
return f1(a, b, c);
}
if(arguments.length == 1) {
return f2(a);
}
}
manager(1, 2, 3); // f2 function called
manager(4); // f1 function called
答案 2 :(得分:0)
不确定。没有办法使函数重载。你可能还记得它是语言的原生,这是一个限制。