数码资讯
js单例模式详细例子
什么是单例 单个案例要求一个类只有一个实例,并且提供一个全局访问点,因此必须绕过常规控制器,它只为用户使用一个实例,并且使用不关心几个示例,因此这是设计者的职责。 复制代码代码如下所示: 在Javascript中,独生子女作为一个共享资源的命名空间命名空间,和分离,它也被称为以下三个方面。 在Jav
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
什么是单例
单个案例要求一个类只有一个实例,并且提供一个全局访问点,因此必须绕过常规控制器,它只为用户使用一个实例,并且使用不关心几个示例,因此这是设计者的职责。
复制代码代码如下所示:
在Javascript中,独生子女作为一个共享资源的命名空间命名空间,和分离,它也被称为以下三个方面。
在Javascript中,单个示例被视为全局名称空间,提供访问对象的一个点。
使用场景
复制代码代码如下所示:
实际上,当一个对象正好存在时,单例模式是有用的。
单个示例更适合于对象与其他系统之间的交互。
类比
一个案例与一个组长相似。在一段时间里,只有一个小组长。有一个组长指派一个小组成员的工作,分配和协调团队成员的工作。
实例1:这是最简单的一个示例,以键、值的形式存储属性和方法
复制代码代码如下所示:
var = {
xx:3,
YY:4,
B:函数(EL){
},
函数(EL){
},
d:函数(EL){
},
e:函数(EL){
}
}
示例2:首先,创建实例的引用,然后判断实例是否存在。如果它不存在,它将直接返回,如果它存在,只有一个。
复制代码代码如下所示:
VaR MySingleton =(函数(){()
一个单实例的引用实例存储
VaR的实例;
函数init(){
单例
私有变量和方法
功能privatemethod(){
console.log(我私人的);
}
无功privatevariable =我私人的;
返回{
/常用方法和变量
publicmethod:函数(){
console.log(公众可以看到我!;
},
公共财产:我也是公众
};
};
返回{
如果实例不存在,则创建一个
getInstance(){:功能
如果(!实例){
实例= init();
}
返回实例;
}
};
});
var = MySingleton单片;
无功singleb = MySingleton;
console.log(单片= singleb); / /真的
例3:
复制代码代码如下所示:
Var SingletonTester =(函数(){()
选项:包含单例配置选项的对象
如无功 / /选项= {姓名:测试pointx:,5 };
函数Singleton(选项){
已提供选项的选项
或空对象,如果不提供
选项=选择| | { };
为我们的单例设置的一些属性
this.name =singletontester ;
this.pointx = options.pointx | | 6;
this.pointy = options.pointy | |;
}
实例持有者
VaR的实例;
静态变量的模拟和方法
无功_static = { {
名称:singletontester
获取实例的方法。它返回
一个单例对象的单例实例
提供:功能(选项){
如果(实例=未定义的){
实例=新的单例(选项);
}
返回实例;
}
};
返回_static;
});
无功singletontest = singletontester.getinstance({
pointx:5
});
pointx日志输出只是 /验证它是正确的
5 输出:
console.log(singletontest。pointx);
单个案例要求一个类只有一个实例,并且提供一个全局访问点,因此必须绕过常规控制器,它只为用户使用一个实例,并且使用不关心几个示例,因此这是设计者的职责。
复制代码代码如下所示:
在Javascript中,独生子女作为一个共享资源的命名空间命名空间,和分离,它也被称为以下三个方面。
在Javascript中,单个示例被视为全局名称空间,提供访问对象的一个点。
使用场景
复制代码代码如下所示:
实际上,当一个对象正好存在时,单例模式是有用的。
单个示例更适合于对象与其他系统之间的交互。
类比
一个案例与一个组长相似。在一段时间里,只有一个小组长。有一个组长指派一个小组成员的工作,分配和协调团队成员的工作。
实例1:这是最简单的一个示例,以键、值的形式存储属性和方法
复制代码代码如下所示:
var = {
xx:3,
YY:4,
B:函数(EL){
},
函数(EL){
},
d:函数(EL){
},
e:函数(EL){
}
}
示例2:首先,创建实例的引用,然后判断实例是否存在。如果它不存在,它将直接返回,如果它存在,只有一个。
复制代码代码如下所示:
VaR MySingleton =(函数(){()
一个单实例的引用实例存储
VaR的实例;
函数init(){
单例
私有变量和方法
功能privatemethod(){
console.log(我私人的);
}
无功privatevariable =我私人的;
返回{
/常用方法和变量
publicmethod:函数(){
console.log(公众可以看到我!;
},
公共财产:我也是公众
};
};
返回{
如果实例不存在,则创建一个
getInstance(){:功能
如果(!实例){
实例= init();
}
返回实例;
}
};
});
var = MySingleton单片;
无功singleb = MySingleton;
console.log(单片= singleb); / /真的
例3:
复制代码代码如下所示:
Var SingletonTester =(函数(){()
选项:包含单例配置选项的对象
如无功 / /选项= {姓名:测试pointx:,5 };
函数Singleton(选项){
已提供选项的选项
或空对象,如果不提供
选项=选择| | { };
为我们的单例设置的一些属性
this.name =singletontester ;
this.pointx = options.pointx | | 6;
this.pointy = options.pointy | |;
}
实例持有者
VaR的实例;
静态变量的模拟和方法
无功_static = { {
名称:singletontester
获取实例的方法。它返回
一个单例对象的单例实例
提供:功能(选项){
如果(实例=未定义的){
实例=新的单例(选项);
}
返回实例;
}
};
返回_static;
});
无功singletontest = singletontester.getinstance({
pointx:5
});
pointx日志输出只是 /验证它是正确的
5 输出:
console.log(singletontest。pointx);
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。