[英]Closure Compiler Ignores Object Mutation
我將以下代碼放入高級模式的閉包編譯器中:
var obj = (function() {
/** @constructor */
function H(a) {
this.a = a
}
var h = new H(1);
h.b=1
return h
})();
我得到的結果是:
(function() {
var a = new function() {
}(1);
a.a = 1;
return a;
})();
為什么忽略我對對象hb=1
所做的更改?
高級編譯選項可實現主動刪除屬性 ,其中包括一些假設:
它有一個很強的假設,即不會重復定義在“原型”或“此”上的屬性,因此是刪除的候選對象。
/** @constructor */ function cls() { this.x = 1; // removal candidate due to "this" assumption; }
因此,您實際上看到的是this.a = a
被刪除,然后將屬性b
重命名為a
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.