最佳实践

#1 - 在ES6中模拟实现设置函数参数为必须输入项

在许多编程语言中,函数的参数默认都是必传项,开发者必须明确定义某个参数是否为可选项。 在javascript中每个参数都是可选的,但是我们可以利用es6默认参数的新特性来实现这种行为而不打乱原本函数的结构。

const _err = function( message ){
  throw new Error( message );
}

const getSum = (a = _err('a is not defined'), b = _err('b is not defined')) => a + b

getSum( 10 ) // throws Error, b is not defined
getSum( undefined, 10 ) // throws Error, a is not defined

_err是一个立即抛出错误的函数。如果需要的参数没有被传入,默认的参数将被使用,_err将被调用并且错误被抛出。