闭包
- 定义
闭包指的是一个函数内部定义的函数,并且返回了这个函数的某些属性或变量。
从实践来说,闭包指的是代码中引用了自由变量,即使创建它的上下文已经销毁,但它仍然存在。
-
实现一个简单闭包
function funA() { var a = 10 return function() { alert(a) } } var b = funA() b()
怎么实现单例
单例就是一个类只能有一个实例对象。即匿名函数自调用返回一个实例
let Person = (function() {
let instance
function Person() {}
return function () {
return instance || (instance = new Person())
}
})()
let obj1 = new Person()
let obj2 = new Person()
obj1.name = 'jjj'
obj2.name = 'aaa'
console.log(obj1.name) // 'aaa'
console.log(obj2.name) // 'aaa'