理解 Javascript 静态函数表达式:GameData 案例
在 Javascript 中,使用 new 关键字的函数表达式在相同意义上不是静态的作为他们的 C# 对应物。这种方法不是创建真正的静态类,而是泄漏构造函数属性并生成可能不符合预期的原型对象。
深入了解 GameData 示例
提供的示例 gameData 演示了使用带有 new 关键字的函数表达式创建“类”的单个实例。但是,包含构造函数属性允许实例化其他对象,从而使“类”非静态。
替代单例方法
实现真正的Javascript 中的单例模式,请考虑以下方法:
单例模式实现
下面的代码使用构造函数说明了单例模式:
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中文网其他相关文章!