この記事を参照しています。
その中で、彼は次のような関数を定義しています。
function makeClass() {
return function _class() {
if(this instanceof _class) {
if(typeof this.init === 'function') {
this.init.apply(this, arguments);
}
} else {
throw new Error('Constructor called as a function');
}
};
}
そして、次のようなもので使用できます。
var MyClass = makeClass();
MyClass.prototype = {
init: function(width, height) { ... },
clear: function(ctx) {... },
draw: function(ctx) { ... }
}
しかし今、すべてのインスタンスで共有する必要があるいくつかの静的変数を初期化したいと考えています。それ、どうやったら出来るの?