在我的代码中,我有一个函数,在给定一些参数的情况下创建一个新的映射。我想这样做,如果没有传递参数,将使用一些默认值。
为什么要赢得这项工作:
function create(a,b,c) {
return new Map(a,b,c || 10,1,10); // create new map using a b c as parameters
// or 10, 1, 10 if none entered.
}
create();
假设有一个构造函数' Map'这会接受并处理这些参数。
除了进行if / else类型检查外,我该怎么办?
答案 0 :(得分:0)
你可以这样做:
function create(a, b, c) {
a = typeof a !== 'undefined' ? a : 10;
b = typeof b !== 'undefined' ? b : 1;
c = typeof c !== 'undefined' ? c : 10;
return new Map(a, b, c);
}
Javascript不提供默认的功能值参数化。
答案 1 :(得分:0)
我知道在某些限制下最短的方法是使用
<var> = <var> || <defaultvalue>;
所以
Return new Map((a = a || 10), (b = b || 1), (c = c || 10));
然而,这种方式几乎无法读取,您可能需要考虑在构造函数之前移动赋值。
然而,限制是所有虚假值导致分配默认值,这可能是某些数值的问题。