Javascript:从类中创建全局范围函数

时间:2014-10-16 12:16:24

标签: javascript oop

我正在创建一个"类"在Javascript中将处理几个HTML5功能(如视频播放)。

如果浏览器中没有HTML5功能,此Javascript类还会生成Flash后备。

Flash后备文件通过调用全局函数与Javascript通信。

我的问题是:

如何让Javascript类生成必要的函数?


据我所知,使用变量而不首先使用var来定义变量会使变量成为全局变量 - 但这会让人感觉很乱,并且肯定会在严格模式下失败。

类本身可以绑定到任何变量,因此尝试访问类中的函数而不首先知道这些变量会有问题。此外,我希望这段代码尽可能便携。

1 个答案:

答案 0 :(得分:1)

编辑:正如mccainz在评论中提到的那样,使用命名空间通常更好主意

您可以使用窗口定义全局函数,而无需打扰严格模式:

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

当然你需要做一些检查,以确保你没有重写现有的功能或其他一些边缘情况,我只是给了一个直接的答案。