Je veux déclarer des constantes de chaîne en JavaScript.
Y a-t-il un moyen de faire ça?
Je veux déclarer des constantes de chaîne en JavaScript.
Y a-t-il un moyen de faire ça?
JavaScript est un concept limité de constantes.
Pour une compatibilité maximale au moment de la rédaction, de les rendre variables.
Pour arrêter de polluer l'espace de noms global, les propriétés d'un objet.
var constants = {
'constant1': 'value1',
'constant2': 'value2'
};
Vous pouvez alors y accéder comme constants.constant1
.
De nombreux navigateurs implémentations de JavaScript ont des constantes, utilisé avec const
. Voir const
Compatibilité du Navigateur sur MDN pour la dernière prise en charge du navigateur
Vous pouvez également modifier le premier exemple, à l'aide de defineProperty()
ou de ses amis et de faire de l' writable
bien false
. Cela signifie que la variable ne peut pas être changé, comme une constante.
Êtes-vous à l'aide de JQuery? Voulez-vous utiliser les constantes dans plusieurs fichiers javascript? Alors lisez la suite. (C'est ma réponse pour une JQuery question)
Il y a une pratique jQuery méthode appelée "getScript'. Assurez-vous d'utiliser le même chemin d'accès que vous le feriez si l'accès au fichier à partir de votre code html/jsp/etc fichiers (c'est à dire le chemin n'est PAS par rapport à l'endroit où vous placez le getScript méthode, mais plutôt par rapport à votre chemin d'accès au domaine). Par exemple, pour une application à localhost:8080/myDomain:
$(document).ready(function() {
$.getScript('/myDomain/myScriptsDir/constants.js');
...
alors, si vous avez cela dans un fichier appelé constants.js:
var jsEnum = { //not really an enum, just an object that serves a similar purpose
FOO : "foofoo",
BAR : "barbar",
}
Vous pouvez à présent imprimer 'foofoo" avec
jsEnum.FOO
Eh bien, vous pouvez le faire comme suit:
(function() {
var localByaka;
Object.defineProperty(window, 'Byaka', {
get: function() {
return localByaka;
},
set: function(val) {
localByaka = window.Byaka || val;
}
});
}());
window.Byaka = "foo"; //set constant
window.Byaka = "bar"; // try resetting it for shits and giggles
window.Byaka; // will allways return foo!
Si vous procédez comme ci-dessus dans l'étendue globale, ce sera une constante vraie, car vous ne pouvez pas écraser l'objet window.
J'ai créé une bibliothèque basée sur ma réponse d'aperçu pour créer des constantes et des objets immuables en javascript. C'est toujours la version 0.2 mais ça fait bien l'affaire. http://beckafly.github.io/insulatejs
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.