源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js单例模式的两种方案

  • 时间:2020-04-13 11:53 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js单例模式的两种方案
方案一:利用闭包的两个作用,可以变通地读到内部的变量,二是可以让这些变量始终在内存中。
[u]复制代码[/u] 代码如下:
//方案一     var SingletonTester = (function () {         //单例方法         function Singleton(args) {             var args = args || {};             this.name = 'SingletonTester'; //方法对外的属性,另外一种方式就是返回对象             this.pointX = args.pointX || 6;             this.pointY = args.pointY || 10;         }         //单例实例         var instance;         //返回对象         return {             name: 'SingletonTester',             getInstance: function (args) {                 if (instance === undefined) {                     instance = new Singleton(args);                 }                 return instance;             }         };     })(); //直接执行该方法     //测试     var test = SingletonTester.getInstance({ pointX: 5 });     console.log(test.pointX);
方案二: 
[u]复制代码[/u] 代码如下:
//方案二   function Universe() {       // 判断是否存在实例       if (typeof Universe.instance === 'object') {           return Universe.instance;       }       // 其它内容       this.start_time = 0;       this.bang = "Big";       // 缓存       Universe.instance = this;       // 隐式返回this   }   // 测试   var uni = new Universe();   var uni2 = new Universe();   console.log(uni === uni2); // true
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部