本文要说的并不是下面这种ES6的函数参数默认值:
function fn(a = 0, b = 1) {}
复制代码
很多时候,我们在写一个构造函数时,可能需要传入很多参数,这时候就不可能使用函数参数一个一个的传入,而是传入一个对象当作参数。
举个例子:一个函数,参数传入一个对象,对象里可以设置两个属性(a, b),a默认值为1,b默认值为2。
ES5
以前我们是这么设置函数参数默认值的:
function es5Fn (options) {
options = options === undefined ? {} : options;
var a = options.a === undefined ? 1 : options.a;
var b = options.b === undefined ? 2 : options.b;
console.log(a, b);
}
复制代码
- 首先判断函数是否传入了一个对象,如果没有创建一个空对象。
- 然后判断这个对象中是否含有a、b属性,没有将会设置为默认值。
ES6
function es6Fn ({a = 1, b = 2} = {}) {
console.log(a, b);
}
复制代码
使用ES6解构赋值的方式设置默认值是不是简单了很多?
终于水完了这篇文章,如果有在开发H5(活动专题)页面的小伙伴看下我的脚手架~
X-BUILD 是针对 H5 开发的一套自动化构建工具,致力于提升开发效率,减小开发难度。它可以让你在没有任何构建工具(例如 grunt 、 gulp 或 webpack 等工具)配置经验的情况下,帮你快速生成一个完整的前端工程,并可以打包代码和静态资源,使你的项目以最优异的性能上线。>>使用文档<<