function read_file(file, delete_after) {
delete_after = delete_after || "my default here";
//rest of code}
这分配给delete_after价值delete_after如果不是法尔西值,否则它将分配字符串。"my default here"..要了解更多细节,请查看DougCrocford对该语言的调查,并查看关于运算符的部分.
如果要传递法尔西价值即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 jQueryfunction merge() {
var obj, name, copy,
target = arguments[0] || {},
i = 1,
length = arguments.length;
for (; 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 valueread_file({ file: "my file" });
// will override default delete_after valueread_file({ file: "my file", delete_after: "my value" });