2011-04-29 49 views
2

有沒有一種方法可以在閉包之外訪問的閉包中創建函數?我正在使用一個AIR應用程序,我需要提供對AIR的specialFunction()的訪問權限,但閉包正在阻止這種情況發生。使一個函數可以在閉包之外訪問

(function() { 
    ... a bunch of code .. 

    function specialFunction() { 
     .. some code 
    } 
}()); 

回答

3

您可以分配功能全局對象(在瀏覽器window):

(function() { 
    ... a bunch of code .. 

    window.specialFuncton = function() { 
     .. some code 
    } 
}()); 

這使得全球可用。

如果AIR應用程序也需要訪問其它的功能,那麼最好是創建這些功能的命名空間:

var funcs = {}; // global 

(function() { 
    ... a bunch of code .. 

    funcs.specialFuncton = function() { 
     .. some code 
    } 
}()); 
+0

大。非常感謝你! – 2011-04-29 16:59:52

相關問題