乐趣区

关于javascript:10-MINSDAY-React-lifecycle-2

  • Constructor in JavaScript
class Class_Name {constructor([arguments]) {...}
}

1. 一个 Class 只能有一个 constructor, 如果没有定义,则会应用默认 constructor
2. 子类继承父类后应用 super 来调用父类的构造方法
在构造函数中拜访 this 之前肯定要调用 super(),它负责初始化 this,如果在调用 super()之前尝试拜访 this 会导致程序出错
class Child_Class_Name extend Class_Name{

constructor([arguments]) {super()
}

}

  1. JS 类继承是一个类扩大另一个类的一种形式, 使用关键字 extends 实现。因而,咱们能够在现有性能之上创立新性能。
  2. exntends

关键字 extends 应用了很好的旧的原型机制进行工作。它将 Child.prototype.[[Prototype]] 设置为 Father.prototype。所以,如果在 Child.prototype 中找不到一个办法,JavaScript 就会从 Father.prototype 中获取该办法。

  1. 如果一个类扩大了另一个类并且没有 constructor,那么将生成上面这样的“空”constructor
class Child extends Father { 
    // 为没有本人的 constructor 的扩大类生成的       
    constructor(...args) {super(...args); 
    }
}
  1. super()的工作模式就是

this._proto_.method_name().call(this), 这里 this._proto_ 就是father._proto_

  1. HomeObject

当一个函数被定义为类或者对象办法时,它的 [[HomeObject]] 属性就成为了该对象。而后 super 应用它来解析(resolve)父原型及其办法。这样解决了继承链条调用办法的问题
在 JavaScript 语言中 [[HomeObject]] 仅被用于 super。所以,如果一个办法不应用 super,那么咱们依然能够视它为自在的并且可在对象之间复制。然而用了 super 再这样做可能就会出错。

退出移动版