静态方法以及原型上的方法

来源:1-1 课程导学

Bokk

2021-08-10

老师,

感觉静态方法一定程度其实也可以写在函数的原型上. 比如

Student.staticMethod() 
Student.prototype.staticMethod()

从内存开销角度, 二者是一样的
两者虽然一个储存在函数空间, 一个储存在函数的原型空间, 但是对于多个实例来说, 并没有产生其它的内存开销

为什么不
至于为什么不, 我的思考是

  1. 如果Student原型上有继承, 比如Student继承了Person, 那么把Student的staticMethod写在Student的原型上, 这样就变成了Person的方法, 而不只是Student自身的方法
  2. 原型空间上的方法活属性是给对象使用的, 而静态方法或属性是给类使用的

我这个理解是否合理呢?

写回答

1回答

keviny79

2021-08-11


61132d90000134e410230645.jpg
详解答案在截图,建议上机测试

0
1
Bokk
非常感谢!测试确实不能通过函数调用原型上的方法, 只能通过实例调用! 这样就通过原型链定义静态属性和方法就行不通了.
2021-08-11
共1条回复

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程