静态方法
在函数下定义的方法
function A () { }
A.a = function () {
console.log('a')
}
const cez = new A()
// 调用:通过 A.xx 直接调用
A.a() // a
cez.a() // cez.a is not a function
打印详细信息
可以看到,定义的静态方法和 A.prototype 同级,而不是存在 A.prototype (原型)下面。所以 new 出来的实例不能访问。
实例方法
定义在原型上的方法
function B () { }
B.prototype.b = function () {
console.log('b')
}
// 调用:通过 new 产生的实例来调用
const cez = new B()
cez.b() // b
B.b() // B.b is not a function
打印详细信息
可以看到,定义的实例方法是存在 B.prototype(原型)下面的,所以不能通过 B.xx 直接调用。
– 若有错误的地方,请多多指教 –