关于static方法和实例方法的问题

来源:12-8 Model上不要定义构造函数,否则会出错

西麦

2019-06-14

有个问题,如果不能使用constructor的话,那使用staic方法和实例化方法不就没有啥区别了。那在这个前提下,应该什么情况使用static方法,什么时候用实例方法呢?

写回答

1回答

郭二蛋

2019-06-15

先来看下static方法和实例方法的区别:

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

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

我的理解是:如果某些操作依赖实例属性的时候使用实例方法,反之如果某些操作不需要依赖实例属性的时候就写成静态方法。(突然觉得我说了句废话)

在咱们这门课程中,写book的models时有一个获取书籍详情和我喜欢的书籍数量这两个功能。前者因为需要用到书籍的id作为参数来拼接一个url,很显然用的应该是实例方法,后者是调用数据库来查询一些数据,使用的应该是静态方法。

以上,是我的拙见,希望和您一起探讨!

3
0

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

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

2223 学习 · 878 问题

查看课程