1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > JavaScript 设计模式学习 Singleton_js面向对象

JavaScript 设计模式学习 Singleton_js面向对象

时间:2018-06-29 08:39:01

相关推荐

JavaScript 设计模式学习 Singleton_js面向对象

web前端|js教程

JavaScript,设计模式,Singleton

web前端-js教程

游戏试玩赚钱平台源码,ubuntu与核显,爬虫遇到登录弹窗,php group,运营和seolzw

/* Basic Singleton. */

var Singleton = {

attribute1: true,

attribute2: 10,

method1: function() {

},

method2: function(arg) {

}

};

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

/* GiantCorp namespace. */

var GiantCorp = {};

mon = {

// 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 exist.

uniqueInstance = constructor();

}

return uniqueInstance;

}

}

})();

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

ios助手源码,下载ubuntu的内核,服务器上tomcat地址,爬虫实战大赛,php中点句号怎么用,seo搜索插件lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。