ES6-Destrukturierungsfunktionsparameter: Beibehaltung des Stammobjektnamens
In ES6 ermöglicht die Destrukturierung von Funktionsargumenten eine prägnante und ausdrucksstarke Parameterbehandlung. Wenn Sie jedoch mit mehreren Konfigurationsparametern arbeiten, die über eine übergeordnete-untergeordnete Klassenhierarchie verteilt sind, kann der Name des Stammobjekts nach der Destrukturierung verloren gehen.
In ES5 können Sie das Stammobjekt mithilfe der Vererbung in der Hierarchie nach oben weitergeben:
// ES5 var setupParentClass5 = function(options) { textEditor.setup(options.rows, options.columns); }; var setupChildClass5 = function(options) { rangeSlider.setup(options.minVal, options.maxVal); setupParentClass5(options); // Pass the options object up };
In ES6 mit Destrukturierung wird dies jedoch zu einem Problem:
// 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? };
Um den Namen des Stammobjekts beizubehalten, können Sie ihn vor der Destrukturierung als Parameter deklarieren:
const setupChildClass6 = options => { const {minVal, maxVal} = options; rangeSlider.setup(minVal, maxVal); setupParentClass6(options); };
Alternativ können Sie alle Optionen einzeln in setupChildClass6 extrahieren:
var setupChildClass6b = ({minVal, maxVal, rows, columns}) => { rangeSlider.setup(minVal, maxVal); setupParentClass6({rows, columns}); };
Dieser Ansatz erfordert jedoch mehr Codezeilen und ist möglicherweise nicht optimal, wenn Sie mit mehreren destrukturierten Variablen arbeiten.
Das obige ist der detaillierte Inhalt vonWie behalte ich den Stammobjektnamen bei der Destrukturierung von Funktionsparametern in ES6 bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!