为什么ES6中Child.myMethod(1)调用static方法而child.myMethod(2)调用实例方法?

为什么es6中child.mymethod(1)调用static方法而child.mymethod(2)调用实例方法?

为什么ES6会输出这个结果

在ES6中,static表示方法或属性属于类本身,而非实例。在提供的代码中,Parent类具有static myMethod和myMethod,而Child类继承了这些方法。

执行过程

  1. Child.myMethod(1)调用static myMethod,因为该方法用static修饰,属于类本身。结果:static 1。
  2. var child = new Child();创建一个Child类的实例。
  3. child.myMethod(2)调用实例方法myMethod,因为它没有static修饰,属于实例。结果:instance 2。

关键概念

静态方法:用static修饰的方法,属于类本身,而不是实例。

实例方法:不使用static修饰的方法,属于实例。

super:用于访问父类的方法或属性,具体指向取决于静态还是实例方法。

原型链:当查找方法或属性时,JavaScript会沿着类链一路向上查找,直到找到或报出错误。

以上就是为什么ES6中Child.myMethod(1)调用static方法而child.myMethod(2)调用实例方法?的详细内容,更多请关注其它相关文章!