检查功能参数的简便方法

时间:2014-06-19 20:58:09

标签: javascript syntax

在我的代码中,我有一个函数,在给定一些参数的情况下创建一个新的映射。我想这样做,如果没有传递参数,将使用一些默认值。

为什么要赢得这项工作:

 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类型检查外,我该怎么办?

2 个答案:

答案 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));

然而,这种方式几乎无法读取,您可能需要考虑在构造函数之前移动赋值。

然而,限制是所有虚假值导致分配默认值,这可能是某些数值的问题。