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

标签 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() {
};

最佳答案

我唯一能想到的就是分两步进行:

var staticMethods = {
    static1: function () {
    },
    static2: function () {
    },
    static3: function () {
    }
};

然后使用这个函数

function registerStaticMethods(aClass, staticMethods) {
    for (var methodName in staticMethods) {
        aClass[methodName] = staticMethods[methodName];
    }
}

你会这样使用它

registerStaticMethods(MyObj, staticMethods);

关于javascript - 以更简洁的方式声明 javascript 静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31960677/

相关文章:

javascript - 如何使用 Javascript 获取完整的 Canvas 内容(甚至隐藏的内容)?

javascript - Node.js 全局变量属性被清除

c# - Kendo DropdownList 从模型中设置值

javascript - 无法使用 Sinon 在类中 stub 箭头函数

java - Android开发中如何管理Activity继承

python - 访问一个类的对象以查看它是否存在于另一个类中

javascript - 如何在 ember 中包含图表 js 注释?

c++ - 如何从 C++ 中的静态成员函数访问非静态成员?

c++ - 正确设置基类和派生类之间的函数返回

javascript - 如何在jquery中的onclick中传递参数