我正在尝试使用用于 javascript 的 oauth 库来获取推文。我创建了一个对象,该对象接收 twitter 时间线的 url 以获取并将其放入列中。代码是
lister=function(opts) {
this.setresource =lister.setresource;
this.config = lister.config;
this.config.resource = opts;
this.putTweet = lister.putTweet;
this.listerstrap = lister.listerstrap;
this.addStrip = lister.addStrip;
this.setTweets = lister.setTweets;
this.addTweets = lister.addTweets;
}
现在,如果我创建两个新的 lister 对象,
var l1 = new lister('user1'); //user1 and user2 refer to url of the timelines
l1.listerstrap();
var l2 = new lister('user2');
l2.listerstrap();
listerstrap 函数是:
lister.listerstrap = function () {
this.addStrip().setresource().addTweets();
}
问题发生在 addTweets()
lister.addTweets = function () {
var _ = this;
oauth.get(twiapi + _.config.resource, function (res) {
_.setTweets(JSON.parse(res.text));
console.log(_.config.resource); // *
});
在 * 处, this (_) 指的是相同的(l2 实例),因此当调用 setTweets 时,来自两个资源的推文被设置到同一列中
这是一个关闭问题吗?
编辑:我正在尝试根据时间线或列表将推文设置为不同的列(如 Tweetdeck 中所做的那样,每个列表都有不同的列)。虽然我从两个网址获得了推文,但它们被设置在同一列中。_ 包含对我在 addStrip() 中创建的每一列的 div 元素的引用。但不知何故 _ 在回调中引用同一个实例。我希望它将推文设置到各自的列中