【发布时间】:2011-03-23 10:38:36
【问题描述】:
function f1(){
var x = 5;
this.f2 = function(){
var y = 10;
function helper(){
//Do we have x here because of closure as we have y
}
setInterval(helper,100);
}
}
我是 JavaScript 的初学者。我正在做new f1() 来创建一个对象。据我了解,helper 可以通过关闭访问y,但我观察到x 也可以在helper 中使用。任何人都可以向我解释为什么会这样以及闭包在 JavaScript 中工作到什么级别。
【问题讨论】:
-
var x 是 javascript 中 f1 类的实例变量,因此它应该在 f1 的所有方法中的 f1 i-e 定义中都可用。
-
不完全是furqan,它只对在构造函数范围内定义的函数可用。稍后添加的方法,或通过原型访问的方法,将无法访问 x。
-
你还有一点语法错误,应该是
this.f2 = function(){没有第一组()
标签: javascript closures