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";