function a(){
console.log(1);
}
a();
- 作用域
-调用一次函数就会产生一个新的内存地址
函数是个作用域,函数外边不可以访问函数里面的变量
console.log(1); //error
function b(){
let a = 1;
}
- 延伸函数的声明周期:
我们知道函数调用之后就会创建一个内存空间 - 什么是闭包?
闭包指当前生命周期延长,如果外部有人使用的情况下,此时的内存地址指向并没有被销毁
function a(){
let b =1;
return {
a:function(){
console.log(++b);
}
}
}
let b = a();
console.log(b.a() == b.a()); //true,指向同一个地址,此时分别打印出2,3
内存并没有被销毁,此时对象也是如此
//对象中的作用域形态
class A {
constructor() {
this.a = 1;
}
b() {
console.log(++this.a);
}
}
let a = new A();
console.log(a.b()); //2
console.log(a.b()); //3