单例设计模式
// 创建div var createWindow = function (param) { var div = document.createElement("div"); div.innerHTML = "我是弹窗内容" + param[0]; div.style.display = 'none'; document.body.appendChild(div); return div; }; // 创建iframe var createIframe = function () { var iframe = document.createElement("iframe"); document.body.appendChild(iframe); return iframe; }; /* 我们使用一个参数fn传递进去,如果有result这个实例的话,直接返回,否则的话 ,当前的getInstance函数调用fn这个函数,是this指针指向与这个fn这个函数; 之后返回被保存在result里面;现在我们可以传递一个函数进去,不管他是创建div也好,还是创建iframe也好, 总之如果是这种的话,都可以使用getInstance来获取他们的实例对象; */ // 获取实例的封装代码 var getInstance = function (fn) { var result; return function () { return result || (result = fn.call(this, arguments)); } }; // 测试创建div var createSingleDiv = getInstance(createWindow); document.getElementById("testId1").onclick = function () { var win = createSingleDiv('1'); win.style.display = "block"; }; // 测试创建iframe var createSingleIframe = getInstance(createIframe); document.getElementById("testId2").onclick = function () { var win = createSingleIframe(); win.src = "http://cnblogs.com"; };
共同学习,共同进步!

浙公网安备 33010602011771号