请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这里用静态方法的目的是什么

const requireDirectory=require('require-directory');
const Router=require('koa-router');

class InitManager {
    static initCore(app){
        InitManager.app=app;
        InitManager.initLoadRouters();
    }
    static initLoadRouters() {
        const apiDirectory=`${process.cwd()}/app/api`;//绝对路径,process.cwd()获取当前根目录文件夹的路径
        requireDirectory(module, apiDirectory, { visit: whenLoadModule });
        function whenLoadModule(obj) {
            if (obj instanceof Router) {
                InitManager.app.use(obj.routes());
            }
        }
        // app.use(classic.routes()) 
    }
}

module.exports=InitManager;

正在回答 回答被采纳积分+3

2回答

慕九州4451910 2020-08-20 09:28:45

所有在类中定义的方法,都会被实例继承。但是,如果在一个方法前加上static关键字,表明它是一个静态方法,表示该方法不会被实例继承,而是直接通过类来调用。

那么什么时候该用实例方法,什么时候该用静态方法呢?

我的理解是:如果某些操作依赖实例属性的时候使用实例方法,反之如果某些操作不需要依赖实例属性的时候就写成静态方法。

0 回复 有任何疑惑可以回复我~
7七月 2020-06-04 14:51:01

这个思路不太对。你应该思考,这里为什么要用实例方法?

0 回复 有任何疑惑可以回复我~
  • 提问者 迷失的小麦 #1
    老师能不能说说,我还是不太清楚为什么要用实例方法
    回复 有任何疑惑可以回复我~ 2020-06-05 15:13:30
  • 7七月 回复 提问者 迷失的小麦 #2
    我的意思是你思路是有点问题的,因为这里本身就不需要用实例方法所以我们就可以实用静态方法。它没有被实例化的必要,所以要用静态方法。
    回复 有任何疑惑可以回复我~ 2020-06-05 17:03:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信