Ich habe eine Function
, die ich in der Lage sein möchte, auf 2 Arten zu rufen - und es sollte das gleiche Verhalten.Destrukturieren Sie eine Funktionsparameter Untereigenschaft
Gibt es eine ES6-Syntax, die es mir ermöglicht, die Funktion doBar
unter Verwendung von beide Wege mit dem gleichen Ergebnis aufzurufen?
Betrachten Sie eine Funktion wie folgt aus:
const doBar = ({ foo = 'bar' }) => {
console.log(foo) // should log 'baz'
}
ich einen Rahmen bin mit, die Ereignisse wie so bindet:
<x-component on-some-event="doBar"></x-component>
, die wie so ein Aufruf wird im Wesentlichen verursachen:
// where e = { detail: { foo: 'baz' } }
doBar(e)
.. aber ich würde gerne in der Lage sein, beide meine Function
ex anrufen plizit auch, wenn auch mit einem richtigen Anruf Signatur wie folgt:
doBar({ foo: 'baz' })
Ich denke, Sie suchen nach 'const {foo} = e.detail || e' – Bergi
@Bergi Ich würde es lieber in den Funktionsargumenten behalten, Ori Drori's Antwort unten hat mich abgedeckt –
Es schaltet die Existenz der 'foo' Eigenschaft, nicht die Existenz der' detail' Eigenschaft ein und wird es bekommen weniger beeindruckend, wenn Sie mehrere Eigenschaften destrukturieren möchten. – Bergi