2014-10-16 92 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