当我在JS中声明实例方法时,我经常使用这种语法:
var MyObj = function (p1) {
this.p1 = p1;
};
MyObj.prototype = {
method1: function() {},
method2: function() {},
method2: function() {}
};
是否有类似的方法来声明“静态”方法而不是这样做:
MyObj.static1 = function() {
};
MyObj.static2 = function() {
};
MyObj.static3 = function() {
};
答案 0 :(得分:2)
我唯一能想到的是分两步完成:
var staticMethods = {
static1: function () {
},
static2: function () {
},
static3: function () {
}
};
然后使用此function
function registerStaticMethods(aClass, staticMethods) {
for (var methodName in staticMethods) {
aClass[methodName] = staticMethods[methodName];
}
}
你会像这样使用它
registerStaticMethods(MyObj, staticMethods);