2012-11-26 95 views
0

我一直在寻找有关如何在ECMAScript中指定一个符号作为公共或私人的讨论6.ES6:公共符号VS私有符号

正如我undertand它的专用符号将使用类似的模式创建如下:

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)?

任何人都可以请链接我的相关信息?

+2

只需将其定义为数据属性即可。 –

回答

4

无论是非专有名称及其语义,还是对名称的精确语法支持都没有完全解决。所以没有什么可以将你联系到一起。你可以得到的最好的结果是挖掘es-discuss上的相关主题。