有没有办法保留解构函数参数的名称?即,根对象的名称?
在ES5中,我可以这样做(使用继承作为隐喻来说明这一点):
// ES5: var setupParentClass5 = function(options) { textEditor.setup(options.rows, options.columns); }; var setupChildClass5 = function(options) { rangeSlider.setup(options.minVal, options.maxVal); setupParentClass5(options); // <= we pass the options object UP };
我正在使用同一个options对象来保存多个配置参数。某些参数由父类使用,而某些参数由子类使用。
options
有没有办法用ES6中的结构化函数参数来做到这一点?
// ES6: var setupParentClass6 = ({rows, columns}) => { textEditor.setup(rows, columns); }; var setupChildClass6 = ({minVal, maxVal}) => { rangeSlider.setup(minVal, maxVal); setupParentClass6( /* ??? */ ); // how to pass the root options object? };
还是我需要提取所有选项,setupChildClass6()以便可以将它们分别传递给setupParentClass6()?
setupChildClass6()
setupParentClass6()
// ugh. var setupChildClass6b = ({minVal, maxVal, rows, columns}) => { rangeSlider.setup(minVal, maxVal); setupParentClass6({rows, columns}); };
我本人在太多地方都有“选项”论据。我会选择1行额外的代码。在此示例中不值得,但是在更多行上进行销毁时是一个很好的解决方案。
const setupChildClass6 = options => { const {minVal, maxVal} = options; rangeSlider.setup(minVal, maxVal); setupParentClass6(options); };