如果我通过闭包编译器或 uglifyjs 运行这段代码,this.init 不会缩短。谁能告诉我这是为什么?
function test() {
var v = "abc";
this.init = function() {
alert('var = ' + v + ' and func = ' + f());
f2();
}
function f() {
return 'def';
}
function f2() {
v = "ghi";
alert('blabla');
alert('filler');
}
}
test();
uglifyjs 把它变成:
function test(){function c(){a="ghi",alert("blabla"),alert("filler")}function b(){return"def"}var a="abc";this.init=function(){alert("var = "+a+" and func = "+b()),c()}}test()
美化就是:
function test() {
function c() {
a = "ghi", alert("blabla"), alert("filler")
}
function b() {
return "def"
}
var a = "abc";
this.init = function () {
alert("var = " + a + " and func = " + b()), c()
}
}
test()
那么为什么 this.init() 没有更改为更短的名称呢?
此外,这样做之间到底有什么区别:
function init() {..}
和
this.init = function() { .. }
谢谢,韦斯利