Definizioni dei parametri di funzione in ES6

Sono sicuro che questo è relativamente semplice e che mi manca qualcosa di ovvio. Sto leggendo le esercitazioni di Mozilla su ES6 e il loro capitolo sulla destrutturazione contiene il seguente schema:

DEFINIZIONI DEI PARAMETRI DI FUNZIONE

Come sviluppatori, possiamo spesso esporre API più ergonomiche accettando un singolo object con proprietà multiple come parametro invece di forzare i nostri utenti API a ricordare l’ordine di molti parametri individuali. Possiamo usare la destrutturazione per evitare di ripetere questo singolo object parametro ogni volta che vogliamo fare riferimento a una delle sue proprietà:

function removeBreakpoint({ url, line, column }) { // ... } 

Questo è uno snippet semplificato di codice del mondo reale dal debugger JavaScript di DevTools di Firefox (che è anche implementato in JavaScript-yo dawg). Abbiamo trovato questo modello particolarmente piacevole.

Quello che non capisco è come questo si riferisce alla destrutturazione. L’idea è che tu permetta la possibilità di passare un object in questa funzione che può essere in ordine arbitrario purché contenga tutti gli elementi, cioè { line: 10, column: 20, url: 'localhost' } ?

Se è così, qual è il vantaggio rispetto a qualcosa di simile

  function removeBreakpoint(params) { // ... } 

dove params è un object con url , line e column ? L’idea è solo quella di forzare Javascript a convalidare i parametri di una funzione quando vengono utilizzati in un contesto destrutturato definendoli esplicitamente?