类方法和实例方法有什么区别[sequelize]

时间:2015-12-26 15:00:00

标签: database node.js sequelize.js

Sequelize允许您向model添加自定义方法,有两种方法可以执行此操作:

  • classMethods:{}
  • instanceMethods:{}

在Sequelize中,我找不到关于这两个对象差异的解释。任何人都可以解释一下这个例子何时使用其中一个?

1 个答案:

答案 0 :(得分:7)

Class是调用sequelize.define时获得的对象。它代表整个表格。

var User = sequelize.define('user', {...});

实例就像是该类的一个单元,即集合表中的一行:

User.create({}).then(function(user) {
  // `user` is an instance.
});

类方法是不期望实例的函数。你可以这样打电话:

User.myMethod();

实例方法是在单个实例上运行的方法。你可以像这样打电话给他们:

user.myMethod();
类方法中的

this是一个类。实例方法中的this是一个实例(显然)。