国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JavaScript的單例模式 (singleton in Javascript)

2024-09-06 12:45:49
字體:
來源:轉載
供稿:網友
單例模式的基本結構:
代碼如下:
MyNamespace.Singleton = function() {
return {};
}();

比如:
代碼如下:
MyNamespace.Singleton = (function() {
return { // Public members.
publicAttribute1: true,
publicAttribute2: 10,
publicMethod1: function() {
...
},
publicMethod2: function(args) {
...
}
};
})();

但是,上面的Singleton在代碼一加載的時候就已經建立了,怎么延遲加載呢?想象C#里怎么實現單例的:)采用下面這種模式:
代碼如下:
MyNamespace.Singleton = (function() {
function constructor() { // All of the normal singleton code goes here.
...
}
return {
getInstance: function() {
// Control code goes here.
}
}
})();

具體來說,把創建單例的代碼放到constructor里,在首次調用的時候再實例化:
完整的代碼如下:
代碼如下:
MyNamespace.Singleton = (function() {
var uniqueInstance; // Private attribute that holds the single instance.
function constructor() { // All of the normal singleton code goes here.
...
}
return {
getInstance: function() {
if(!uniqueInstance) { // Instantiate only if the instance doesn't exist.
uniqueInstance = constructor();
}
return uniqueInstance;
}
}
})();
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆河县| 临武县| 芦溪县| 肃北| 扎兰屯市| 甘洛县| 曲麻莱县| 栾城县| 泽州县| 达州市| 衡南县| 抚州市| 连城县| 通榆县| 邻水| 陆良县| 张家口市| 通山县| 绥宁县| 峨眉山市| 朝阳区| 霍城县| 尼勒克县| 龙江县| 兴仁县| 平昌县| 来凤县| 桐乡市| 新乐市| 新野县| 丰城市| 卢湾区| 盐边县| 阿鲁科尔沁旗| 桐柏县| 比如县| 巴塘县| 革吉县| 深水埗区| 安顺市| 临海市|