摘要: 今天看到一个朋友在群里问了一个问题,代码如下 var foo = {n:1}; (function(foo){ var foo; console.log(foo.n); // 1 foo.n = 3; foo = {n:2}; console.log(foo.n); // 2 })(foo); console.log(foo.n); //3 很好奇为什么结果打印的是1 2 3。那在这里分析下,首先在函数外部定义的变量foo属于全局变量,此时在栈内存中给它分配一个物理地址,假如为x1,同时赋值时x1对应的变量foo指向堆中的对象{n:1},而在函数内部定义的变量 阅读全文
posted @ 2018-12-20 11:05 Smile_ruo 阅读(258) 评论(0) 推荐(0)