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

Dav*_*tti 0 database node.js sequelize.js

Sequelize允许您向模型添加自定义方法,有两种方法:

  • classMethods:{}
  • instanceMethods:{}

在Sequelize中,我无法找到关于这两个对象的差异的解释.任何人都可以用一个例子来解释这个区别何时使用其中一个?

Lou*_*kad 7

Class是你打电话时得到的对象sequelize.define.它代表整个表格.

var User = sequelize.define('user', {...});
Run Code Online (Sandbox Code Playgroud)

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

User.create({}).then(function(user) {
  // `user` is an instance.
});
Run Code Online (Sandbox Code Playgroud)

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

User.myMethod();
Run Code Online (Sandbox Code Playgroud)

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

user.myMethod();
Run Code Online (Sandbox Code Playgroud)

this在类方法中是一个类.this在实例中,方法是一个实例(显然).