我一直在寻找有关如何在 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
)?
任何人都可以将我链接到相关信息吗?