【发布时间】:2012-05-26 23:24:51
【问题描述】:
我正试图深入了解 jQuery 和 JavaScript 对象和函数,并掌握 this 的工作原理以及它指向的位置。
请有人解释为什么this 有效。
Cat.prototype.meowLater = function() {
var self = this;
window.setTimeout(
function() {
self.meow();
}
, 1000);
}
我感兴趣和困惑的一点是为什么变量self 实际上可以在计时器调用的匿名函数中访问。我认为因为self 是在另一个函数中声明的,所以它是本地的并且只能由该函数访问。
【问题讨论】:
-
为什么这不起作用? Self 是一个局部变量,但定时器函数调用也是局部的,在 mewlater 方法中。
-
我以前从未真正使用过匿名函数,这就是为什么我有点困惑。这是否意味着任何匿名函数都可以访问在加载它的函数中设置的所有变量(以及任何全局变量)?
标签: javascript function object this