Ce que je veux faire, c'est utiliser autant de variables immuables que possible, réduisant ainsi le nombre de pièces mobiles dans mon code. Je veux utiliser "var" et "let" uniquement lorsque c'est nécessaire.
Cela ne fonctionnera pas:
function constParam(const a){
alert('You want me to '+a+'!');
}
Des idées?
Les paramètres de fonction resteront des liaisons modifiables (comme var
) dans ES6, vous ne pouvez rien y faire. La meilleure solution consiste probablement à déstructurer l'objet arguments
dans une initialisation const
:
function hasConstantParameters(const a, const b, const c, …) { // not possible
…
}
function hasConstantParameters() {
const [a, b, c, …] = arguments;
…
}
Notez que cette fonction aura une arité différente (.length
), si vous en avez besoin, vous devrez déclarer certains paramètres d'espace réservé.
Vous ne pouvez pas créer de paramètre const
. Utilisez-le comme valeur initiale d'une variable locale:
function constParam(a) {
const const_a = a;
...
}
Notez également que const
est uniquement pris en charge dans Internet Explorer à partir de IE11. Voir ce tableau de compatibilité
C'est ce que je fais:
Au lieu de:
function F(const a, const b, const c, const d, const e, const f, const g){ // Invalid Code
// lorem
// ipsum
}
..Utilisation:
function F(){const[a, b, c, d, e, f, g] = arguments;
// lorem
// ipsum
}
Nous pouvons utiliser la déstructuration ES6 pour créer des constantes à partir de paramètres
function test(...args) {
const [a, b, c] = args;
}
function wrapper(i){
const C=i
return new Function("a","b", "return a+b+"+C)
}
f100 = wrapper(100) //ƒ anonymous(a,b/*``*/) {return a+b+100}
f100(1,2) //OUTPUT 103
f200 = wrapper(200) //ƒ anonymous(a,b/*``*/) {return a+b+200}
f200(1,2) //OUTPUT 203