我刚遇到这个,我有自己的解决方案。
在自执行函数中创建整个库,将所有对象属性作为字符串(每个属性至少一次),如下所示:
(function () {
var myLibrary = {
'myMethod' : function () {
...
}
}
myLibrary.myMethod['propertyOfTheMethod'] = '';
}());
使其从外部可访问的常用方法是将其放在var myLibrary =
函数之前和return myLibrary
末尾,以便将其分配给全局变量。但是函数是在全局范围内执行的(因为它是自执行的),所以我们可以创建一个this
使用字符串字面量的属性。完整的:
(function () {
var myLibrary = {
'myMethod' : function () {
...
}
}
myLibrary.myMethod['propertyOfTheMethod'] = '';
this['myLibrary'] = myLibrary;
}());
但是,这在"use strict";
. 在严格模式下获取全局变量的最佳方法是使用var global = Function('return this')();
然后将您的变量分配给它。