文章博客

技术团队文档示例


【设计模式】单例模式

<h3>单例模式</h3> <hr /> <p>单例模式的核心是确保只有一个实例,并提供全局访问。</p> <pre><code>var Singleton = function (name) { this.name = name; }; Singleton.prototype.getName = function () { alert(this.name); }; Singleton.getInstance = (function () { var instance = null; return function (name) { if (!instance) { instance = new Singleton(name); } return instance; } })(); var a = Singleton.getInstance( 'sven1' ); var b = Singleton.getInstance( 'sven2' ); console.log(a) //[object Object] { // getName: function () { // alert(this.name); //}, // name: "sven1" //} console.log(b) alert ( a === b ); // true</code></pre> <h3>Js设计模式</h3> <h4>单例模式</h4> <hr /> <p>管理单例模式和创建实例对象</p> <pre><code>//管理单例模式 var getSingle = function(fn){ var result; return function(){ return result || (result = fn.apply(this,arguments)) } } //创建实例对象 var createLoginLayer = function(){ var div = document.createElement( 'div' ); div.innerHTML = '我是登录浮窗'; div.style.display = 'none'; document.body.appendChild( div ); return div; }; var createSingleLoginLayer = getSingle( createLoginLayer ); document.getElementById( 'loginBtn' ).onclick = function(){ var loginLayer = createSingleLoginLayer(); loginLayer.style.display = 'block'; };</code></pre>

页面列表

ITEM_HTML