首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么google闭包编译不将可重用的索引保存在变量中?

为什么google闭包编译不将可重用的索引保存在变量中?
EN

Stack Overflow用户
提问于 2018-05-21 20:40:32
回答 1查看 51关注 0票数 1

这种MWE展示了google闭包编译器如何将短obj[keyA]替换为更长的obj["some-very-long-key"]

输入javascript:

代码语言:javascript
复制
var foo = new function() {
  var keyA = 'some-very-long-key';
  var keyB = 'another-key';
  this.bar = function() {
    obj[keyA] = {};
  }
  this.baz = function(data) {
    obj[keyA][keyB] = data;
  }
}();

Google闭包编译器输出:

代码语言:javascript
复制
var foo = new function() {
  this.bar = function() {
    obj["some-very-long-key"] = {};
  };
  this.baz = function(a) {
    obj["some-very-long-key"]["another-key"] = a;
  };
};

如果删除包装函数,则它就像我所期望的那样工作

输入javascript:

代码语言:javascript
复制
var keyA = 'some-very-long-key';
var keyB = 'another-key';
function bar() {
  obj[keyA] = {};
}
function baz(data) {
  obj[keyA][keyB] = data;
}

Google闭包编译器输出:

代码语言:javascript
复制
var keyA = "some-very-long-key", keyB = "another-key";
function bar() {
  obj[keyA] = {};
}
function baz(a) {
  obj[keyA][keyB] = a;
}
;

因为我在我的项目中经常使用长键,所以如果google闭包编译器将字符串文字保留在变量中,代码就会变得比它可能的要大。

  • 是什么导致了这种行为?
  • 如何让它将字符串文字存储在变量中,并使用该变量(名称较短)作为索引,同时将整个内容保存在构造函数中?

更新1:我知道我想要的结果可能执行得更差,但我宁愿接受更短的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 23:06:12

因为gzip -它通常使压缩大小变小。它甚至是在常见问题中

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50456349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档