当函数recursion调用时,什么原因导致“no method”错误?

我正在为reddit写一个网页爬虫,每2秒只允许1个请求,并且想使用recursion来发出请求。 在一系列获得1人评论的请求完成后,我想发出完成消息,并在消息队列中的下一个用户名上再次调用注释。 问题是每当我超过一个级别,我得到一个“TypeError:对象#没有方法”发射“”。

我也开放了更好的方法来做到这一点,我刚开始学习节点,并确定有更好的方法来实现这一点。

我已经发布了我的代码在下面的要点…任何帮助将是可怕的!

https://gist.github.com/1729182

问题在于这是一个关键字(不是自由variables),它是函数调用的“接收者”。

例如,给出:

 x = {fn: function () {return this} } x.fn() 

然后在fn里面, this计算结果是x计算结果(也x.fn() === x )。 在代码grabComments被调用没有接收器,在这种情况下, this将恢复到全局对象。 你可能对Function.call/apply / apply感兴趣,或者只是简化代码来处理嵌套函数的recursion,这样self就可以保持在范围内。

(在JavaScript中,方法不会绑定到对象上:它们只是被embedded到属性中的函数,所以接收器对于执行函数的确定至关重要。

也可以看看:

  • jQuery / JavaScript“这个”指针混淆
  • 在Javascript中,为什么“this”运算符不一致?
  • Javascript“这个”variables混乱
  • JavaScriptclosures如何工作?

快乐的编码。