最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js单例模式的两种方案_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:14:40
文档

js单例模式的两种方案_javascript技巧

js单例模式的两种方案_javascript技巧:方案一:利用闭包的两个作用,可以变通地读到内部的变量,二是可以让这些变量始终在内存中。 代码如下://方案一 var SingletonTester = (function () { //单例方法 function Singleton(args) { var args = args {};
推荐度:
导读js单例模式的两种方案_javascript技巧:方案一:利用闭包的两个作用,可以变通地读到内部的变量,二是可以让这些变量始终在内存中。 代码如下://方案一 var SingletonTester = (function () { //单例方法 function Singleton(args) { var args = args {};


方案一:利用闭包的两个作用,可以变通地读到内部的变量,二是可以让这些变量始终在内存中。

代码如下:
//方案一
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);

方案二: 

代码如下:
//方案二
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

文档

js单例模式的两种方案_javascript技巧

js单例模式的两种方案_javascript技巧:方案一:利用闭包的两个作用,可以变通地读到内部的变量,二是可以让这些变量始终在内存中。 代码如下://方案一 var SingletonTester = (function () { //单例方法 function Singleton(args) { var args = args {};
推荐度:
标签: 技巧 js javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top