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)
但是现在我想初始化一些应该在所有实例之间共享的静态变量。我怎么做?
只需将其添加到MyClass自身即可。
MyClass.myVariable = 42;
Run Code Online (Sandbox Code Playgroud)
从 Java/C# 的意义上来说,它并不是真正的静态,但可以提供相同的效果。