function read_file(file, delete_after) {
delete_after = delete_after || "my default here";
//rest of code
}
如果它不是 falsey 值,则将其赋值,否则它将赋值字符串 。有关更多详细信息,请查看Doug Crockford对该语言的调查,并查看有关运算符的部分。delete_after
delete_after
"my default here"
如果要传入 falsey 值,即 、 、 或 ,则此方法不起作用。如果你要求传入 falsey 值,则需要使用 Tom Ritter 的答案中的方法。false
null
undefined
0
""
在处理函数的多个参数时,允许使用者在对象中传递参数参数,然后将这些值与包含函数默认值的对象合并通常很有用。
function read_file(values) {
values = merge({
delete_after : "my default here"
}, values || {});
// rest of code
}
// simple implementation based on $.extend() from jQuery
function merge() {
var obj, name, copy,
target = arguments[0] || {},
i = 1,
length = arguments.length;
for (; i < length; i++) {
if ((obj = arguments[i]) != null) {
for (name in obj) {
copy = obj[name];
if (target === copy) {
continue;
}
else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
};
使用
// will use the default delete_after value
read_file({ file: "my file" });
// will override default delete_after value
read_file({ file: "my file", delete_after: "my value" });