手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript 设计模式学习 Singleton
JavaScript 设计模式学习 Singleton
摘要:复制代码代码如下:/*BasicSingleton.*/varSingleton={attribute1:true,attribute2:1...

复制代码 代码如下:

/* Basic Singleton. */

var Singleton = {

attribute1: true,

attribute2: 10,

method1: function() {

},

method2: function(arg) {

}

};

单件模式最主要的用途之一就是命名空间:

/* GiantCorp namespace. */

var GiantCorp = {};

GiantCorp.Common = {

// A singleton with common methods used by all objects and modules.

};

GiantCorp.ErrorCodes = {

// An object literal used to store data.

};

GiantCorp.PageHandler = {

// A singleton with page specific methods and attributes.

};

利用闭包在单件模式中实现私有方法和私有变量:

GiantCorp.DataParser = (function() {

// Private attributes.

var whitespaceRegex = /s+/;

// Private methods.

function stripWhitespace(str) {

return str.replace(whitespaceRegex, '');

}

function stringSplit(str, delimiter) {

return str.split(delimiter);

}

// Everything returned in the object literal is public, but can access the

// members in the closure created above.

return {

// Public method.

stringToArray: function(str, delimiter, stripWS) {

if(stripWS) {

str = stripWhitespace(str);

}

var outputArray = stringSplit(str, delimiter);

return outputArray;

}

};

})(); // Invoke the function and assign the returned object literal to

// GiantCorp.DataParser.

实现Lazy Instantiation 单件模式:

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;

}

}

})();

MyNamespace.Singleton.getInstance().publicMethod1();

【JavaScript 设计模式学习 Singleton】相关文章:

JavaScript中String.prototype用法

在JavaScript中使用NaN值的方法

JavaScript AOP编程实例

JavaScript实现鼠标滑过处生成气泡的方法

JavaScript检查子字符串是否在字符串中的方法

javascript实现动态改变层大小的方法

javascript原型模式用法实例详解

JavaScript获得指定对象大小的方法

JavaScript中反正弦函数Math.asin()的使用简介

JavaScript正则表达式的分组匹配详解

精品推荐
分类导航