Comprendre les expressions de fonction statiques Javascript : le cas GameData
En Javascript, les expressions de fonction qui utilisent le nouveau mot-clé ne sont pas statiques dans le même sens comme leurs homologues C#. Plutôt que de créer une classe véritablement statique, cette approche divulgue la propriété du constructeur et génère un objet prototype qui n'est probablement pas prévu.
Une plongée plus approfondie dans l'exemple GameData
L'exemple fourni, gameData, illustre la création d'une instance unique d'une « classe » à l'aide d'une expression de fonction avec le nouveau mot-clé. Cependant, l'inclusion de la propriété constructeur permet l'instanciation d'objets supplémentaires, rendant la « classe » non statique.
Approches Singleton alternatives
Pour obtenir un véritable modèle singleton en Javascript, envisagez les méthodes suivantes :
Implémentation du modèle Singleton
Le code ci-dessous illustre le modèle Singleton à l'aide d'une fonction constructeur :
function GameData() { if (this.constructor.singleton) return this.constructor.singleton; else this.constructor.singleton = this; // Private and public members initialization } GameData.prototype.storageAvailable = function () { // Availability check logic }; var gameData = new GameData(); var gameData2 = new GameData(); console.log(gameData === gameData2 === GameData.singleton); // Outputs true
Cette approche garantit que les tentatives d'instanciation ultérieures renvoient toujours la même instance GameData, établissant un véritable comportement singleton.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!