我注意到像 setTimeout()
这样的调用可以作为:
self.keyword()
或仅靠他们自己,例如关键字()
。
这两个调用有什么不同?
最佳答案
self
可以引用窗口对象,但这里通常不是这种情况。您通常会在 setTimeout()
上方看到:
var self = this;
它们保留对当前对象的引用,因此稍后当您调用 self.keyword()
时,您是在该对象上调用该方法 ,而不是任何其他。
例如,假设您希望每 2 秒旋转一次页面中的图像...您希望这 3 个计时器中的每一个都引用它们自己的方法。如果他们直接使用 this
,它将(大部分时间)引用 window
而不是当前对象,而传递另一个变量以维护当前引用。
关于javascript - 何时在 JavaScript 中使用 self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3309516/