具有John Resig的简单类模式的静态变量?

mpe*_*pen 5 javascript design-patterns

我指的是这篇文章

在其中,他定义了一个类似于以下内容的函数:

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');
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以将其与以下内容一起使用:

var MyClass = makeClass();

MyClass.prototype = {
    init: function(width, height) { ... },
    clear: function(ctx) {... },
    draw: function(ctx) { ... }
}
Run Code Online (Sandbox Code Playgroud)

但是现在我想初始化一些应该在所有实例之间共享的静态变量。我怎么做?

Jor*_*dão 3

只需将其添加到MyClass自身即可。

MyClass.myVariable = 42;
Run Code Online (Sandbox Code Playgroud)

从 Java/C# 的意义上来说,它并不是真正的静态,但可以提供相同的效果。