似乎与闭包有关,求讲解。
function test() {
var num = 1;
var t2 = function() { console.log(num); }
num++;
return t2;
}
var t=test();
t();
似乎与闭包有关,求讲解。
function test() {
var num = 1;
var t2 = function() { console.log(num); }
num++;
return t2;
}
var t=test();
t();
是的,闭包问题
t函数的功能是打印num,这个num的上下文是test函数,注意,不是window,因为t所指向的函数是在test函数内部创建的,test内部的num初始值为1,后经过一次运算变成2,所以之后运行t函数的时候,所打印的就是2
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
闭包的意思就是虽然是在外面执行,但执行环境仍然是定义它的地方。所以外面的
t()
实际上相当于在return t2;
这一句的位置上执行的。结果是什么是不是一眼就看出来了。