Firefox 33でES6のSymbolが実装された
不完全ながら ES6 の Symbol が実装された。
Symbolは、Undefined, Null, Boolean, Number, String に続く新たなプリミティブな型である。
既にChromeのV8エンジンには実装されていて、Symbolについて - JS.nextにて記事になっているので、どんなものかは、こちらを参照すると良いと思う。
ただ、一点、V8も含め、Object.getOwnPropertySymbols()
が実装されていて、完全にプライベートなプロパティを作れるわけではないことには注意。
var obj = (function(){ var o = {}; var sym = Symbol(); o[sym] = "foo"; return o; }()); obj[Object.getOwnPropertySymbols(obj)[0]]; // === "foo";