2011-09-11 38 views
1

是否可以在我自己的.js文件中以字符串「_func」開頭列出/返回數組中的所有javascript函數?如何列出所有以_func開頭的javascript函數

在WebKit的JSCore中完成。

基本上,如果我的文件有一堆函數,我該如何列舉這些函數?

+1

是那些功能全局函數?他們最好不要。 ':)' –

+0

編號用戶世界功能。 – David

+0

它們可以是全局的,也可以嵌套在其他函數中......或者它們可以是對象的屬性。 –

回答

4

您可以遍歷window對象的成員,並對其進行測試:

var functions = []; 

for(var x in window) { 
    if(typeof window[x] === "function" && x.indexOf("_func") === 0) { 
     functions.push(x); 
    } 
} 
+0

這不適用於瀏覽器之外的Webkit環境,因爲定義了「窗口」。 – David

+1

@David在全局代碼中,'this'關鍵字引用全局對象,因此您可以用'this'替換'window' ... –

2

您可以通過循環window對象的成員做到這一點:

for (var name in window) { 
    if (name.match(/^_func/) && typeof window[name] == 'function') { 
     console.log(name); 
    } 
} 
+0

這在瀏覽器之外的Webkit環境中不起作用,因爲'window'是定義。 – David

相關問題