function Foo(){
var a = 1
this.get = function(){
console.log(a)
}
this.add = function () {
a++
}
}
let foo1 = new Foo()
let foo2 = new Foo()
foo1.add()
foo1.get() // 2
foo2.get() // 1
function C(){
var a = 1
return function () {
return a++
}
}
let c1 = C()
let c2 = C()
c1() // 2
c2() // 2
问题 1: 构造函数内部声明变量只能通过实例方法调用,这和闭包是一样的吗?
var a = 1
this.get = function(){
console.log(a)
}
this.add = function () {
a++
}
}
let foo1 = new Foo()
let foo2 = new Foo()
foo1.add()
foo1.get() // 2
foo2.get() // 1
function C(){
var a = 1
return function () {
return a++
}
}
let c1 = C()
let c2 = C()
c1() // 2
c2() // 2
问题 1: 构造函数内部声明变量只能通过实例方法调用,这和闭包是一样的吗?