当我使用“this”时,google 闭包编译器(http://closure-compiler.appspot.com/home)似乎保留了所有方法名称。或者在使用显示模块模式时。当方法不在可能被其他外部方法引用的对象中时,它似乎只将方法重命名为字母。我尝试包装我的(实用程序)对象和使用它的匿名方法,但这似乎没有帮助。您如何创建可以相互共享的对象(和单独的脚本文件),并且仍然让它缩写所有方法名称?
我在 SO 上阅读了几篇文章,但没有看到任何解决此问题的文章,只有关于由于与外部变量冲突而未重命名的内容的文章。
var Utility = (function () {
this.isDefined = function (v) {
/// <summary>Checks to see if a variable is defined.</summary>
return typeof v !== 'undefined';
}
this.isObj = function (v) {
/// <summary>Checks to see if a variable is an object.</summary>
return typeof v === 'object';
}
...
})();
然后我希望能够做到:
(function(u) {
u.isDefined();
})(Utility);
我也试过:
var Utility = (function () {
var utility = {};
utility.isDefined = function (v) {
/// <summary>Checks to see if a variable is defined.</summary>
return typeof v !== 'undefined';
}
utility.isObj = function (v) {
/// <summary>Checks to see if a variable is an object.</summary>
return typeof v === 'object';
}
return utility;
...