Javascript 如何从回调函数访问对象?

Javascript 如何从回调函数访问对象?,javascript,asynchronous,google-feed-api,Javascript,Asynchronous,Google Feed Api,我感觉很糟糕,因为这很可能已经得到了回答,我只是没有使用正确的搜索词。我对异步JavaScript非常陌生。因此,我将首先道歉。如果有人能帮我找到合适的搜索词,我将不胜感激 我正在尝试使用GoogleFeedsAPI。当我遵循hello world一节中列出的股票示例时,它就起作用了。我正在尝试做一些更具可扩展性的东西,以便我可以在多个地方使用它。所以我创建了一个对象 function AlertRSS(num, url, div, date) { this.num = typeof num

我感觉很糟糕,因为这很可能已经得到了回答,我只是没有使用正确的搜索词。我对异步JavaScript非常陌生。因此,我将首先道歉。如果有人能帮我找到合适的搜索词,我将不胜感激

我正在尝试使用GoogleFeedsAPI。当我遵循hello world一节中列出的股票示例时,它就起作用了。我正在尝试做一些更具可扩展性的东西,以便我可以在多个地方使用它。所以我创建了一个对象

function AlertRSS(num, url, div, date) {
  this.num = typeof num !== 'undefined' ? num : 5;
  this.url = typeof url !== 'undefined' ? url : 'http://arstechnica.com/author/caseyjohnston/feed/';
  this.sel = typeof sel !== 'undefined' ? sel : '#alert';
  this.date = typeof date !== 'undefined' ? date : this.getYesterday();
}
然后我尝试调用方法内部的对象

AlertRSS.prototype.displayFeed = function() {
  var retval = null;
  var feed = new google.feeds.Feed(this.url);
  feed.load(function(result) {
  var tmp = this;
    if (!result.error) {
      for ( var i = 0; i < result.feed.entries.length; i++) {
        var entry = result.feed.entries[i];
        console.log(sel + ' <h2><a href="' + entry.link + '">' + entry.title + '</a></h2><br  />');
        $(tmp.sel).append('<h2><a href="' + entry.link + '">' + entry.title + '</a></h2><br  />');
      }
    }
  });
};

您正确地创建了
tmp
变量来捕获
(注意,在本上下文中通常称之为
,即
)。您甚至正确地使用了此引用:
tmp.sel
。但是,在此之前,您忘记在队列中使用它:

console.log(sel + ' <h2><a href="' + entry.link + '">' + entry.title + '</a></h2><br  />');

你会没事的。

你的函数参数要求div not sel。

托马斯兹,谢谢你的帮助。我做了改变,我现在<代码>*未定义*
我仍然认为这可能是一个范围问题,但至少没有更多的错误!非常感谢。再次感谢你。你让我走上了正确的道路。我已经在下面发布了工作代码。谢谢!当我重构代码时,我确实错过了构造函数中的参数。
console.log(sel + ' <h2><a href="' + entry.link + '">' + entry.title + '</a></h2><br  />');
console.log(tmp.sel + //...