Comprender el método de herencia de JavaScript

Prefacio

En JavaScript, podemos simular la herencia manipulando objetos prototipo.
Antes de aprender la herencia, debemos comprender los objetos prototipo en el siguiente JavaScript.


1. La diferencia entre __prto__ y prototype

Los objetos que tienen _proto_propiedades pueden denominarse " "prototipos . El prototipo implícito de un objeto apunta al prototipo de la función constructora que construyó el objeto, lo que también asegura que la instancia pueda acceder a las propiedades y métodos definidos en el prototipo de la función constructora.
El método de este tema en particular, además de tener las _proto_propiedades anteriores , prototypelas propiedades únicas del método.
Cuando creamos una instancia de un objeto, el _proto_atributo del objeto apunta a los prototypeatributos de función predeterminados .

    function Person(name){
    
    
        this.name = name;
        this.sayName = function(){
    
    
            console.log(`我叫${
      
      this.name}`)
        }
    }
    var person1 = new test();//生成对象person1实例化Test构造方法
    var person2 = new test();
    /*
        对象t生成时会从Object继承一个__proto__属性,指向创造它的构造方法原型-->构造方法test。
    */
    t.__proto__ === test.prototype;// true 

Mecanismo de operación de código:

  1. Después de crear un constructor personalizado, su objeto prototipo solo tendrá propiedades de constructor por defecto , y otras propiedades y métodos se heredan de Object.

La propiedad del constructor devuelve el cuerpo de la función que creó este objeto.

  1. Cuando se llama al constructor para crear una nueva instancia, el interior de la instancia contendrá un puntero al objeto prototipo del constructor. ECMA5 llama a este puntero [[prototipo]] . Aunque no existe una forma estándar de acceder a [[prototype]] en los scripts , Firefox, Safari y Chrome admiten un atributo __proto__ en cada objeto. En Internet Explorer, este atributo es completamente invisible. Pero el punto real que debe quedar claro es que esta conexión existe entre el objeto de instancia y el objeto prototipo del constructor ( es decir, el nombre del constructor.prototype ), no entre la instancia y el constructor.
    Texto de imagen

Herencia en JS


Utilice el prototipo para agregar datos a la matriz de prototipos

referencia

知 乎: [[https://zhuanlan.zhihu.com/p/92894937]]
CSDN: [[https://blog.csdn.net/q5706503/article/details/82947977]]

Supongo que te gusta

Origin blog.csdn.net/qq_35370002/article/details/107903014
Recomendado
Clasificación