为什么说stage-2深藏不露呢,因为它很低调,低调到你可以忽略它,但事实上,它很有内涵的。它除了覆盖stage-3的所有功能,还支持插件。
stage-2支持插件
syntax-trailing-function-commas
transform-object-reset-spread
syntax-trailing-function-commas
这个插件让人一看觉得挺没趣的,让人甚至觉得它有点鸡肋。因它不是对ES6功能的增加,而是为了增强代码的可读性和可修改性而提出的。如下面的代码所示:
//假设有如下的一个函数,它有两个参数
functionclownPuppiesEverywhere(
param1,
param2
){/*...*/}
clownPuppiesEverywhere(
'foo',
'bar'
);
//有一天,它需要变成3个参数,你需要这样修改
functionclownPuppiesEverywhere(
param1,
-param2
+param2,//这一行得加一个逗号
+param3//增加参数param3
){/*...*/}
clownPuppiesEverywhere(
'foo',
-'bar'
+'bar',//这里的修改为逗号
+'baz'//增加新的参数
);
//看到没?我们修改了4行代码。。啊啊。修改了4行代码。
stage-2如何改动
修改了4行代码,嗯嗯嗯。。追求高效的程序猿想想了,以后如果有更多参数了,我是不是要改等多行,得想想,代码改的越少越好,于是有了下面的改动。。
//我们来重新定义一下函数
functionclownPuppiesEverywhere(
param1,
param2,//注意这里,我们加了一个逗号哟
){/*...*/}
clownPuppiesEverywhere(
'foo',
'bar',//这里我们也加了一个逗号
);
//现在函数需要三个参数,我们来修改下
functionclownPuppiesEverywhere(
param1,
param2,
+param3,//增加params3参数
){/*...*/}
clownPuppiesEverywhere(
'foo',
'bar',
+'baz',//增加第三个参数
);