我试图调用具有相同签名的函数。
示例:有两个同名函数:
<script>
var obj1,obj2,obj3,obj4,obj5;
function OpenBox(obj1,obj2){
// code
}
function OpenBox(obj1,obj2,obj3,obj4,obj5){
// code
}
</script>
当我在链接的点击事件上调用函数时<a id='hlnk1' href='#' onclick='OpenBox(this,\"abhishek\"); return false;'> Open Box </a>
当我单击上面的链接时,它正在调用函数 OpenBox(obj1,obj2,obj3,obj4,obj5) {}它应该是调用函数 OpenBox(obj1,obj2) {}。
函数出了什么问题?
最佳答案
mattn的想法正确。因为javascript没有类型,所以这些功能是等效的。您可以做的是这样的:
function OpenBox_impl1(obj1,obj2){
// code
}
function OpenBox_impl2(obj1,obj2,obj3,obj4,obj5){
// code
}
function OpenBox(obj1, obj2, obj3, obj4, obj5) {
if(arguments.length == 2)
return OpenBox_impl1(obj1, obj2);
else
return OpenBox_impl2(obj1,obj2,obj3,obj4,obj5);
}