このコードをクロージャ コンパイラまたは 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() { .. }
ありがとう、ウェズリー