Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

setTimeout调用的函数中this指向的问题

$
0
0

创建一个对象,然后 setTimeout执行,形如:

var obj = {
    foobar: 4,
   	event: function() {
        console.log(this);
    }
};
setTimeout(obj.event, 2000);

输出结果为:

Timeout {
  _called: true,
  _idleTimeout: 2000,
  _idlePrev: null,
  _idleNext: null,
  _idleStart: 53,
  _onTimeout: [Function],
  _repeat: null }

即在setTimeout函数调用obj中的event之后,event中的this指针指向了一个类型为setTimeout返回的Timeout句柄的对象,具体是不是改setTimeout返回的对象我没有深究。

我想实现的是在event中能使用 foobar的值,本来想用this实现,结果发现了这个问题。

有没有什么办法可以使用该值呢?

一脸懵逼= =,没有的话我就只能换思路了。


Viewing all articles
Browse latest Browse all 14821

Trending Articles