如何使用GCC重命名Object.defineProperty创建的属性

编程入门 行业动态 更新时间:2024-10-26 04:30:21
本文介绍了如何使用GCC重命名Object.defineProperty创建的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我希望在ADVANCED_OPTIMIZATIONS模式下重命名对象属性.

I wish to rename object property in ADVANCED_OPTIMIZATIONS mode.

优化前的代码:

/** * @constructor */ function Container() { var items = []; Object.defineProperty(this, 'items', { set: function(value) { items = value; }, get: function() { return items; } }); } var container = new Container(); container.items = [1,2,3]; console.log(container.items);

优化后:

var b = new function() { var a = []; Object.defineProperty(this, "items", {set:function(c) { a = c }, get:function() { return a }}) }; b.e = [1, 2, 3]; console.log(b.e);

Closure Compiler未重命名属性名称-"items".

Closure Compiler not renamed the property name - "items".

推荐答案

正如@owler正确回答的那样,Closure-compiler无法重命名Object.defineProperty创建的属性,因为它们总是被引用.相反,请使用Object.defineProperties,因为它们可以带引号也可以不带引号.

As @owler correctly answered, Closure-compiler can not rename Object.defineProperty created properties because they are always quoted. Instead, use Object.defineProperties as they may be either quoted or unquoted.

/** * @constructor */ function Container() { var items = []; Object.defineProperties(this, { items$: { set: function(value) { items = value; }, get: function() { return items; } } }); } var container = new Container(); container.items$ = [1,2,3]; console.log(container.items$);

注意:通过Object.defineProperties定义的属性不适合基于类型的重命名,因此,仅当未在externs集合中的任何类型上定义该属性时,才会重命名.这样,我的示例将items属性替换为items$.

Note: Properties defined via Object.defineProperties are not eligible for type-based renaming and as such will only be renamed if the property is not defined on any type in the externs set. As such, my example replaces the items property with items$.

更多推荐

如何使用GCC重命名Object.defineProperty创建的属性

本文发布于:2023-11-05 19:21:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1561636.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   重命名   属性   GCC   Object

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!