De hecho, cuando comencé a aprender JS, analicé la implementación de la herencia. En ese momento, intenté entender los segmentos de código que vi del libro. Lo reprendí hoy y sentí que este era el resultado de la evolución de la exploración de pensamiento.
La herencia significa reutilización.
Si deja de lado la idea inherente de herencia y deja que B reutilice a los miembros de A, la forma más simple y grosera de hacerlo, B = A;
Entonces, la pregunta es: cualquier cambio a B es un cambio a A (el mismo objeto).
Ok, luego copie uno. Si la copia superficial no es lo suficientemente segura, use una copia profunda.
Problema: El código se reutiliza, pero la memoria se desperdicia (independientemente de las variables o métodos, es un objeto en JS).
Si no copia, lee y escribe, puede usar el prototipo JS, b .__ proto__ = a. En general, no cambiamos __proto__ directamente, es demasiado violento. JS proporciona un método que puede lograr el objetivo más "gentil" - objeto.create (b).
Este método es factible, pero este es solo un modo de reutilización para objetos específicos. ¿Qué pasa si logramos "el objeto creado usando constructorb puede reutilizar el prototipo del objeto de constructora"?
La respuesta es: tratar B como constructorb.prototype y tratar A como constructora.prototype.
pregunta:
Solución:
Al declarar constructorB, el sistema solicitará automáticamente a constructorb.prototype.constructor = constructorb; En el código anterior, el constructor se tira y se agrega el constructor.
Lo anterior es la herencia más básica. No está dentro del alcance de este artículo, sobre cómo las subclases llaman al constructor y a los miembros de la clase principal en general (como este.
Lo anterior es el contenido completo de la herencia anticuada de las clases de JavaScript que el editor le trae. Espero que todos apoyen a Wulin.com más ~