我一直在寻找有关如何在ECMAScript 6中将符号指定为公共或私有的讨论。
正如我所做的那样,将使用类似于以下的模式创建私有符号:
var itemManager = (function() {
var items = new Symbol(/* possible string description? */);
return {
[items]: [ ],
getItems: function() {
return this[items].slice();
},
addItem: function(item) {
this[items].push(item);
}
};
})();
但是如何将items
符号指定为公开?公共符号是否可以在ES6中使用,或者它们只是私有的(例如,不显示在Object.getOwnPropertyNames
中)?此外,默认情况下公共符号是否可枚举(显示在Object.keys
)?
有人可以将我链接到相关信息吗?
答案 0 :(得分:4)
非私人名称及其语义,以及对名称的精确句法支持都没有完全解决。所以没有任何东西可以链接到你。你能得到的最好的就是在es-discuss上挖掘相关主题。