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

来源:3-7 初始化管理器与Process.cwd

迷失的小麦

2020-06-04

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;
写回答

2回答

慕九州4451910

2020-08-20

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

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

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

0
0

7七月

2020-06-04

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

0
2
7七月
回复
迷失的小麦
我的意思是你思路是有点问题的,因为这里本身就不需要用实例方法所以我们就可以实用静态方法。它没有被实例化的必要,所以要用静态方法。
2020-06-05
共2条回复

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

理解异步编程本质/培养面向对象思维,独立完成Node.js服务端开发

2223 学习 · 878 问题

查看课程