Heim >Web-Frontend >js-Tutorial >Wie behalte ich den Stammobjektnamen bei der Destrukturierung von Funktionsparametern in ES6 bei?

Wie behalte ich den Stammobjektnamen bei der Destrukturierung von Funktionsparametern in ES6 bei?

DDD
DDDOriginal
2024-11-04 06:24:29561Durchsuche

How to Preserve the Root Object Name When Destructuring Function Parameters in ES6?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn