阻止对的关闭重命名对象键

Prevent closure to from renaming object keys

本文关键字:重命名 对象      更新时间:2023-09-26

我在代码的其他地方定义了一个document['key']。基本上是客户端在类似这样的html <script></script>标记中设置的API密钥。

<script type="text/javascript">
(function(){
  document.clientKey = 'a uuid unique to client';
})();
</script>

我通过document['clientKey']调用了javascript文件中的这个键,它一直运行良好,直到我将它传递给closure,closure将它重命名为document.I。我可以强制关闭以保持字符串'clientKey'

这在理解闭包编译器施加的限制中介绍

使用字符串名称引用对象属性:

编译器在高级模式下重命名属性,但从不重命名字符串。如果您需要使用带引号的字符串引用属性,请始终使用带引号字符串

var x = { 'unrenamed_property': 1 };
x['unrenamed_property'];  // This is OK.
if ( 'unrenamed_property' in x ) {};   // This is OK