闭包是一种机制,函数执行形成的一个不被释放的私有上下文,形成保护和保存的机制
缺点:形成不被释放的上下文,消耗内存
下面来介绍代码中对的闭包的应用
一、单例设计模式中的应用
系统中被唯一使用,一个类只有一个实例称为单例模式
把描述自己特征的属性方法,放到自己的命名空间,这样可以防止全局变量污染
介绍一种简单的单例设计模式
class SingleObject {
login() {
console.log('login...')
}
}
SingleObject.getInstance = (function () {
let instance
return function () {
if (!instance) {
instance = new SingleObject()
}
return instance
}
})()
let obj1 = SingleObject.getInstance()
let obj2 = SingleObject.getInstance()
console.log(obj1 === obj2) // 相等说明是唯一的实例
jq中单例设计模式
(function (global,factory) {
if (typeof module === ‘object’ && typeof module.exports === ‘object’) {
// NODE环境下执行(CommonJS模块)
} else {
// 浏览器环境。