【发布时间】:2019-04-18 12:35:46
【问题描述】:
有没有办法保留解构函数参数的名称?即根对象的名称?
在 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 对象来保存多个配置参数。有些参数是父类使用的,有些是子类使用的。
有没有办法在 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()?
// ugh.
var setupChildClass6b = ({minVal, maxVal, rows, columns}) => {
rangeSlider.setup(minVal, maxVal);
setupParentClass6({rows, columns});
};
【问题讨论】:
-
arguments[0]可以,但是不行,你不能在解构的同时命名它们。
标签: javascript function arguments ecmascript-6 destructuring