以更简洁的方式声明javascript静态方法

时间:2015-08-12 09:07:33

标签: javascript oop

当我在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() {
};

1 个答案:

答案 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);