prototype.jsのinitialize

prototype.js

var NewClass = Class.create();

としておけばinitizizeメソッドがnewしたときに呼び出されるようになる。

privateフィールド問題もいけるのかな:

NewClass.prototype.extend( {
  initialize : function () {
     var self = this;
     var count = 0;
     this.inc = function () {
       count += 1;
     };
     this.getCount = function () {
       return count;
     };
  }
});

結局このインスタンスもextendsさせられなくなるか。Class.createで作る限りはnewするたびにinitializeが呼ばれるので大丈夫だった。