定义:确保一个类只有一个实例,而且自行实例化并向整个零碎提供这个实例。
说白了就是:就算你反复调用想去生成新的实例,但返回的依然是这个实例,在js中也就是闭包的利用。
var singleton = (function () { var animal return function (name) { if (!animal) animal = new Animals(name) return animal } })() function Animals(name) { this.name = name this.getName = function () { console.log(this.name) } } var animal1 = singleton('小猫咪') var animal2 = singleton('大鲨鱼') var animal3 = singleton('旺财') animal1.getName() //小猫咪 animal2.getName() //小猫咪 animal3.getName() //小猫咪 console.log(animal1 === animal2) //true