javascript中setTimeout的問題解決方法

字號:


    這篇文章主要介紹了javascript中setTimeout的問題以及對應(yīng)的解決方法,需要的朋友可以參考下
    看到一個(gè)問題,大概是這個(gè)樣子得。
    代碼如下:
    name = 'out of you'
    foo = function(){
    this.name = 'xxoo';
    }
    foo.prototype.say = function(){
    console.log(this.name);
    }
    f = new foo();
    f.say(); // 這句會輸出xxoo
    setTimeout(f.say, 500); // 這句會輸出out of you
    這是個(gè)坑,javascript的this是在調(diào)用的時(shí)候產(chǎn)生的,還跟上下文有關(guān)。這么解決呢。我測試了一下,用了call。
    代碼如下:
    setTimeout.call(foo(), f.say, 500)
    網(wǎng)上的一些解決方法
    js中setTimeout的this指向問題
    JavaScript中使用Timer
    最后其實(shí)還是對this得理解問題。