var x=1;
function test() {
alert(this.x);
alert(x);
}
function y() {
var z={x:2};
var x=5;
test.call(z);
}
y();
test();
运行结果为:2 1 1 1
1.其中this不固定 ,指的是函数运行时所在的对象 ,obj.func 或 func.aplpy(obj) this=obj
2.而函数里的变量则是指函数定义时作用域内的变量,与调用处无关 ,这就是闭包 closure ,这就是 脚本语言的一个特性,由于 脚本语言本身就是有 一个宿主程序 来解释执行他的 ,故 context 上下文信息 可以由宿主程序跟踪记录 ,随时查询。
3.ps: jdk7 据说要 加入 闭包特性
本文探讨了JavaScript中this关键字的行为及其如何随函数调用方式的变化而变化,并深入讲解了闭包的概念及其工作原理。

1933

被折叠的 条评论
为什么被折叠?



