摘要:
今天看到一个朋友在群里问了一个问题,代码如下
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)

浙公网安备 33010602011771号