静态方法
在函数下定义的方法
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 直接调用。
– 若有错误的地方,请多多指教 –
本文深入探讨了静态方法和实例方法的区别。静态方法直接在构造函数上定义,可通过类名直接调用,但实例无法访问;实例方法则定义在原型上,只能通过实例调用。文章通过代码示例清晰地展示了两者的使用方式。
1197

被折叠的 条评论
为什么被折叠?



