2015-09-27 18 views
3

我有一個網頁,加載了很多javascript文件。jQuery.ready和這個

每個javascript都執行特定操作。

我使用這個模型中的每個javascript文件:

"use strict"; 

$(function() { 
    var self = this; 

    // some code 

    var func1 = function() { 
     // do some action 
    }; 

    var runTimer = function() { 
     func1(); 
     setTimeout(self.runTimer, 60000); 
    } 
}); 

但「這」在這種情況下,點HTML文檔,我想指向函數本身。

我該如何實現它?

有沒有更好的「模型」使用?

我的網頁就像很多小部件在同一時間運行,每個JavaScript文件運行特定的小部件。

非常感謝。

+1

你爲什麼要這樣做? – Manu

+1

你想用「this」做什麼? –

+0

我編輯了我的代碼。 –

回答

0

我沒有看到你這樣做的正確理由。如果您想將功能分配給一個變量只需使用:

var functionVariable = function() { ... } 

也許如果你告訴我們,你爲什麼要做這一點,答案將更加明確。

+0

我編輯了我的代碼。 –

0

從您所寫的內容看來,您希望每60秒致電func1()。而不是像遞歸調用setTimeoutrunTimer()那樣設置功能,只需使用setInterval即可。而不是功能runTimer(),只需使用:

var timer = setInterval(func1, 60000); 

,如果/當你想取消和停止FUNC1被稱爲,用途:

clearInterval(timer); 

從我能看到你只能是使用self/this來實現這一點,並有一個更好/更直接的方式來做到這一點。如果還有其他原因需要設置self = this,您可以添加到您的代碼示例中,還是試圖闡明您想要達到的目標?