JavaScript面向对象,闭包内存图,闭包和作用域

时间:2023-02-26 08:56:34
var i = 10;
function test(){
var j;
i=20; //未定义
function test(){
j='hello';
}
console.log(test()); //undefined
console.log(j); //hello
}
test();
console.log(i); //

JavaScript面向对象,闭包内存图,闭包和作用域

var a = 12;
var b = "12";
function c(){ }
var c = function(){
d = 15;
a = 20;
function e(){
d = 33;
}
var d;
e();
console.log(d); //
}
c();
console.log(a); //
console.log(b); //"12"

JavaScript面向对象,闭包内存图,闭包和作用域

栈里面存放变量,堆里面存放对象,常量池里面存放常量。

闭包内存图:

函数调用本质其实是创建一个临时的闭包空间,调用完成,空间自动回收,销毁

闭包寻找变量的时候,作用域是就近原则