Javascript:从类内部创建全局作用域函数
Javascript: Creating global scope functions from inside an class
我正在用Javascript创建一个"类",它将处理几个HTML5功能(如视频播放)。
这个Javascript类还生成一个Flash回退,以防浏览器中不存在HTML5功能。
Flash回退文件通过调用全局函数与Javascript进行通信。
我的问题是:
如何让Javascript类生成必要的函数?
据我所知,在不首先使用var
定义变量的情况下使用变量会使该变量成为全局变量,但这感觉很粗糙,在严格模式下肯定会失败。
类本身可以绑定到任何变量,因此在不知道这些变量的情况下尝试访问类内的函数将是有问题的。此外,我希望这个代码尽可能的可移植。
EDIT:正如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
当然,你需要做一些检查,以确保你没有重写现有的函数或其他一些边缘情况,我只是给出了一个直接的答案。
相关文章:
- Javascript-在全局作用域中调用本地函数/属性
- javascript中的全局作用域和本地作用域
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- 在全局作用域中定义的具有相同名称的变量
- javascript变量变量名和全局作用域(pinesnotify)
- 变量:本地作用域、全局作用域还是 JavaScript 引擎
- 为什么全局作用域中的变量被分配给窗口对象
- 全局作用域中的var someVariable和JavaScript中的window[“someVariable”]之间
- Javascript eval() for Json 字符串注入了全局作用域函数
- 如何将全局作用域变量引用到局部作用域中
- 为什么在iframe中注入的JavaScript使用父窗口作为其全局作用域
- Javascript:从类内部创建全局作用域函数
- Javascript:过滤已附加到全局作用域的变量
- 在全局作用域上调用Object.prototype方法
- 为什么JavaScript中的子对象会失去全局作用域
- 如果目标是避免污染全局作用域,为什么不让更多的人随机化他们的全局命名空间对象呢?
- 如何从全局作用域访问函数中的变量?
- 为什么在代码示例中' this '不是指向js全局作用域
- 全局作用域映射的Javascript方法
- 添加到全局作用域的函数变量