我有一个函数,它接受多个可选参数。目前,这个函数没有按照我期望的方式分配默认值。
var test1 = function(arg1, arg2, arg3, arg4) {
arg1 = arg1 || "arg1";
arg2 = arg2 || "arg2";
var obj = {
arg1: arg1,
arg2: arg2,
arg3: arg3,
arg4: arg4
};
return(obj);
};
var obj1 = test1(arg3 = "notarg1", arg4 = "notarg2"); // Why are these values assigned to arg1 & arg2 instead of 3 & 4?
console.log(obj1);
我不理解这个。Javascript似乎忽略了我的(arg3 = "notarg1", arg4 = "notarg2")
赋值,而是表现得好像(arg1 = "notarg1", arg2 = "notarg2", arg3 = undefined, arg4 = undefined)
是我的输入。
var test2 = function(arg1, arg2, arg3, arg4) {
if (arg1 === null) {
arg1 = "arg1";
}
if (arg2 === null || arg2 === "undefined") {
arg2 = "arg2";
}
var obj = {
arg1: arg1,
arg2: arg2,
arg3: arg3,
arg4: arg4
};
return(obj);
};
var obj2 = test2(arg3 = "notarg1", arg4 = "notarg2")
console.log(obj2);
我不确定是否值得包含这个内容。情况没有改变。