Per strutture immutabili, credo che stiate cercando Immutable.js.
Come @Andreas_Gnyp sta dicendo, fino a quando non v'è alcuna ES6 let
/const
in JavaScript. (Né ci sarà function(const a) {...}
dopo ES6 è completamente supportato.) Se si desidera utilizzare const
, è possibile implementare la propria funzione const
oppure iniziare a utilizzare la notazione ES6 con l'aiuto di alcuni componenti del compilatore ES6-to-ES5 di terze parti, ad esempio come Babel.
Tuttavia, tenere presente che const
nella notazione ES6 non rende la variabile immutabile. Per esempio. const a = [1, 2]; a.push(3);
è un programma completamente valido e a
diventerà [1, 2, 3]
. const
sarà solo impediscono di riassegnazione a
, in modo che non si può fare a = []
o a = {}
o qualsiasi altra cosa, una volta const a = [1, 2];
già definito (in quel particolare campo di applicazione).
function hasConstantParameters(...args) {
const [a, b] = args;
}
Immutable.js farà in modo che, quando si definisce var a = fromJS([1, 2]);
e passare a
come un parametro di funzione, nella funzione di ricezione a.push(3)
non influirà a
. E 'questo quello che volevi ottenere?
fonte
2015-07-31 11:32:50
Questa è in realtà una soluzione interessante per questo. Se non fosse così brutto, inizierei ad usarlo. –
Come dire 'function hasConstantParameters (... args) {const [a, b] = args; }; '? –
@BugsBunny Questo è praticamente lo stesso. Tuttavia, non mi piace l'introduzione di un altro identificatore ('args'), e non ho deliberatamente inserito alcun parametro nel solito posto, ma ho spostato tutto nella dichiarazione' const'. – Bergi