当我只是在玩JS的时候,我写了下面的片段:
function checkArgs(abc,nbn,jqrs){
console.log("overloaded " +arguments.length);
}
function checkArgs(abc){
console.log(arguments.length);
}
checkArgs("aa","lll","pp");我看到输出为“3”,但我期望输出为“重载3”。但是我没有发生,但是如果我只是交换那些方法的位置,它就会发生。
function checkArgs(abc){
console.log(arguments.length);
}
function checkArgs(abc,nbn,jqrs){
console.log("overloaded " +arguments.length);
}
checkArgs("aa","lll","pp");其背后的理由是什么?
发布于 2016-07-24 20:24:35
javascript中没有函数重载。
最新的方法声明总是用相同的名称覆盖上一个方法声明。没有抛出错误。
javascript中的函数也都是可变的。无论函数签名如何,都可以传递任意数量的参数。
发布于 2016-07-24 20:29:38
在JavaScript中没有重载,函数的声明得到吊起,它被重载的方法覆盖。最后一个方法依次覆盖所有其他定义。
https://stackoverflow.com/questions/38556417
复制相似问题