This question already has answers here:
Method overloading in Javascript
(10个答案)
4年前关闭。
当我只是在玩JS时,我写了以下代码段:
我将输出视为“3”,但是我期望输出为“Overloaded 3”。但是我没有发生,但是如果我只交换那些方法的位置,它的确会发生。
它背后的原理是什么?
(10个答案)
4年前关闭。
当我只是在玩JS时,我写了以下代码段:
function checkArgs(abc,nbn,jqrs){
console.log("overloaded " +arguments.length);
}
function checkArgs(abc){
console.log(arguments.length);
}
checkArgs("aa","lll","pp");
我将输出视为“3”,但是我期望输出为“Overloaded 3”。但是我没有发生,但是如果我只交换那些方法的位置,它的确会发生。
function checkArgs(abc){
console.log(arguments.length);
}
function checkArgs(abc,nbn,jqrs){
console.log("overloaded " +arguments.length);
}
checkArgs("aa","lll","pp");
它背后的原理是什么?
最佳答案
javascript中没有函数重载。
最新的方法声明始终会覆盖具有相同名称的前一个方法。没有引发任何错误。
javascript中的函数都是可变参数。无论函数签名如何,都可以传递任意数量的参数。
09-26 19:22