定义
个人理解
拿经典游戏贪吃蛇为例,蛇吃的食物每次都出现一个,按照我没学习单例模式之前的思想,会生成一个食物类,当蛇吧食物吃啦时,就需要创建一个新的食物,那这样对js引擎来说,不就是一个重复的操作。这也就是单例模式解决的问题
代码实现
var Test = (function() {
var intance;
return function (name) {
if(typeof intance === 'object') {
return intance;
}
this.name = name;
intance = this;
}
}) ()
const a = new Test('a')
Test.age = 12;
const b = new Test('1')
console.log(a === b);
实现传入普通函数,改造成单例模式
var getSingle = function(func) {
var result;
return function () {
if (!result) {
result = func.apply(this, arguments);
}
return result ;
}
}