gpt4 book ai didi

javascript - 使用 UglifyJS 破坏公共(public)变量名称

转载 作者:行者123 更新时间:2023-11-29 22:15:48 24 4
gpt4 key购买 nike

我有类似的代码:

(function (global) {
var MyObject = function (arg1, arg2) {
this.publicVar = arg1;
this._internalVar = arg2;
};
MyObject.prototype = {
publicFunc: function (param) {
return param + this._internalVar;
}
};
global.MyObject = MyObject;
}(window));

我能否以某种方式让 UgilfyJS 破坏 _internalVar 因为它不打算在此范围之外使用?我知道这可以通过使用高级压缩等的闭包编译器来完成,但我正在使用 anvil 来构建并使用 uglifyjs 来缩小。

最佳答案

为了保护 _internalVar ,我试过了

(function (global) {

var MyObject = function () {};

MyObject.prototype = (function(){

var _internalVar = 2;

return {
publicVar: 1,
publicFunc: function (param) {
return param +' '+ _internalVar;
}
};

})();

global.MyObject = MyObject;

}(window));

并尝试访问

console.log(  ( new window.MyObject()).publicVar  );

打印1

console.log(  ( new window.MyObject())._internalVar  );

未定义

console.log( ( new window.MyObject()).publicFunc('value') );

打印值2

更多信息请查看http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript

关于javascript - 使用 UglifyJS 破坏公共(public)变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com