我正在 Javascript 中创建一个“类”,它将处理多个 HTML5 功能(例如视频播放)。
此 Javascript 类还会生成 Flash 后备,以防浏览器中不存在这些 HTML5 功能。
Flash 回退文件通过调用全局函数与 Javascript 进行通信。
我的问题是:
如何让 Javascript 类生成必要的函数?
<小时/>据我所知,使用变量而不首先使用 var
定义它将使该变量成为全局变量 - 但这感觉很hacky并且在严格模式下肯定会失败。
类本身可以绑定(bind)到任何变量,因此在不首先知道这些变量的情况下尝试访问类内部的函数将会出现问题。我还希望这段代码尽可能可移植。
最佳答案
编辑:如mccainz所述在评论中,使用命名空间通常是更好的主意
您可以使用 window 来定义全局函数,而无需打扰严格模式:
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
<小时/>
当然,您需要进行一些检查以确保您没有重写现有函数或其他一些边缘情况,我只是给出了直接的答案。
关于Javascript:从类内部创建全局作用域函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404194/