Enum (JavaScript)の履歴

Enumのようなもの。
定義して変更できなくしてるのがうまいね〜

http://progress.from.tv/2009/04/28/javascriptでjavaのようなenumを定義するには?/

  var Piece = function() {}

  // インスタンスメソッドを定義
  Piece.prototype.getTurn = function() {
      switch(this) {
      case Piece.Black:
              return Piece.White;
      case Piece.White:
              return Piece.Black;
      }
      return null;
  }

  // 列挙型として再定義。
  Piece = {Black: new Piece(), White: new Piece()};

  console.log(Piece.Black.getTurn());
  console.log(Piece.Black.getTurn());
  console.log(new Piece());