观察:
function myFunc(arg1, arg2) {
if (arguments.length < 2) { // Only one argument received
arg1 = "Default"; // Set arg1 to some default value
arg2 = arguments[0]; // Use the first argument passed for arg2
}
return [arg1, arg2];
}
myFunc("Hello", "World"); //=> ["Hello", "World"]
// So far, so good. Now let's try one that uses the default value for arg1:
myFunc("World"); //=> ["Default", "Default"]
到底是什么,JavaScript?这里发生了什么?为什么 JavaScript 会这样?
最佳答案
您在使用其值之前覆盖了您的第一个参数:
arg1 = "Default"; // Set arg1 to some default value
arg2 = arguments[0]; // Use the first argument passed for arg2
因此 arg2
的值被设置为值“Default”而不是原始值。
关于javascript - 为什么这个 JavaScript 函数的行为如此奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183974/