JavaScript の静的関数式を理解する: GameData の場合
JavaScript では、new キーワードを利用する関数式は同じ意味で静的ではありませんC# の対応物として。このアプローチでは、真に静的なクラスを作成するのではなく、コンストラクターのプロパティがリークされ、おそらく意図されていないプロトタイプ オブジェクトが生成されます。
GameData の例の詳細
提供されている例の gameData は、 new キーワードを含む関数式を使用して「クラス」の単一インスタンスを作成する方法を示しています。ただし、コンストラクター プロパティを含めることで、追加オブジェクトのインスタンス化が可能になり、「クラス」が非静的になります。
代替シングルトン アプローチ
真のJavascript のシングルトン パターンについては、次のメソッドを検討してください:
シングルトン パターンの実装
以下のコードは、コンストラクターを使用したシングルトン パターンを示しています。 function:
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
このアプローチにより、後続のインスタンス化試行では常に同じ GameData が返されることが保証されます。インスタンス、真のシングルトン動作を確立します。
以上がJavaScript で静的クラスまたはシングルトン パターンを適切に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。