2014-10-16 93 views
0

我在Javascript中創建了一個「類」,它將處理多個HTML5功能(如視頻回放)。Javascript:在類中創建全局範圍函數

如果瀏覽器中沒有HTML5功能,此Javascript類還會生成Flash後備。

Flash後退文件通過調用全局函數與Javascript通信。

我的問題是:

我怎樣才能獲得Javascript類來生成必要的功能?


要使用的變量,而不首先使用var將其定義我的知識可變全球 - 但這種感覺哈克和嚴格的模式肯定會失敗。

該類本身可以綁定到任何變量,所以試圖訪問類中的函數而不先知道這些變量會有問題。我也希望這個代碼儘可能便攜。

回答

1

編輯:由mccainz在評論mentionned它通常是一個好主意,用一個命名空間

您可以使用窗口定義全局的功能,而不會打擾嚴格模式:

function MyClass() { 
    // your constructor 
    window.globalFunctions = window.globalFunctions || {}; 
} 

MyClass.prototype.createGlobalFunctionFoo = function() { 
    window.globalFunctions.foo = function() { 
     // your code 
    }; 
}; 

var myInstance = new MyClass(); 
myInstance.createGlobalFunctionFoo(); 

console.log(globalFunctions.foo); // your function 

當然你需要做一些檢查以確保你沒有重寫現有的函數或其他邊緣情況,我只是給出了一個直接的答案。

+1

好主意將'命名空間'對象標記到窗口並將所有全局變量放在那裏以限制佔用空間。 – mccainz 2014-10-16 12:29:06