Ideas de programación orientada a objetos JS

Orientado a objetos

Orientado a objetos es una idea de programación, es una idea de programación orientada por tipo de datos de objeto;
Hay una oración en
JS Todo es un objeto JS c ++ PHP java ... Programación orientada a objetos de desarrollo orientado a objetos (OOP)

patrones de diseño orientado a objetos de cuatro
Singleton
modelo de fábrica de
modo constructor de
modelo prototipo
1. Singleton
método cuando invocan su atributo Singleton
Singleton objetos cada vez que re-var; modo manual que pertenece a
nombre del objeto. nombre de la propiedad
esta llamada; nota a este punto de emisión
. llamadas a la propiedad de otras personas sólo podemos nombre del atributo de nombre de objeto de
espacio de nombres - "es el nombre del objeto que definimos
Singleton -" separado ejemplo - "es el uso de los objetos ordinarios Como un espacio de nombres; - Todos los objetos comunes pertenecen a una instancia de la clase base Objeto;

① Modo de caso único

    var zfpx = { 
        nombre: 'zfpx' , 
        set: function () { 

        }, 
        get: function () { 

        } 
    };

②El modelo singleton avanzado es diferente
del modelo singleton ordinario; no hay privacidad; cualquiera puede ver y cambiar; a veces necesitamos proteger algo de nuestra privacidad; entonces necesitamos estos modelos singleton avanzados

  var person = ( function () {
         var name = 'zfpx' ;
         var fn = function () { 
            console.log (name) 
        }; 
        var fn2 = function () { 
            console.log (name); 
        }; 
        var fn3 = function () { 
            fn2 (); 
        }; 
        return { 
            f: fn 
        } 
    }) ();

2. Modo de fábrica El modo de
fábrica es
la redundancia deuncódigo defunción ordinario, las
funciones pueden lograr una alta cohesión y un bajo acoplamiento de código

El patrón singleton tiene la desventaja de que debe crear manualmente un nuevo objeto cada vez. Cuando necesitamos crear muchos singletons, es problemático variar un objeto nuevo cada vez, y también causará una cierta cantidad de redundancia de código; esto Cuando podemos usar funciones para crear los tonos únicos que necesitamos;
hacemos de este modelo un modelo de fábrica

function factory (name) {
         var obj = { 
            name: name, 
            set: function () { 

            }, 
            get: function () { 

            } 
        }; 
        return obj 
    } 
    var obj = factory ('zfpx' );
    var obj2 = fábrica ('zfpx2' );
    var obj3 = fábrica ('zfpx3');

3. Patrón de constructor Patrón de
constructor; Crear un constructor; crear una
instancia deeste constructor (clase personalizada) a través de un nuevoEl atributo __proto__ de esta instancia apunta al objeto prototipo de
esteconstructor (clase personalizada)Este prototipo Hay un atributo de constructor en el objeto que apunta al propio constructor.
Todas las instancias son un objeto.
Todas las clases son una función.

   función Person3 () {
         var name2 = 'zfpx' ;
        este .name = name2;
        este .age = 9 ;
        // this.getName = function () { 
        //      console.log (12) 
        // } 
        // return 9; 
        // devuelve esto; 
        // return {} 
    } 
    Person3.prototype.getName = function () { 
        console.log ( this .name) 
    }; 
    Person3.prototype.name = 'zhufeng' ;
    var per = nuevoPerson3 ();
     // var per3 = new Person3 (); 
    var n = Person3 (); // n 
    console.log (per); // {name, age} 
    per.getName ();
     / * 
    * per is Person3 Una instancia de (clase personalizada) 
    * Si es una instancia, puede llamar a métodos y propiedades en el prototipo de la clase 
    * * /

La diferencia entre la nueva función de ejecución y la nueva ejecución de la función ordinaria
creará automáticamente un objeto (esto) dentro de la función; después de que se complete la ejecución de la función; esto devolverá esto por defecto
si el valor de retorno se modifica manualmente; si return es un tipo de valor; entonces el retorno predeterminado Aún así,
si la devolución es un tipo de datos de referencia, entonces la devolución es el tipo de datos de referencia

El modo prototipo
utiliza el
prototipo delconstructor: prototipo

Cada función tiene una propiedad: prototipo Esta propiedad apunta al propio objeto prototipo de la función.
Cada objeto tiene una propiedad de proto, que apunta al objeto prototipo
de su clase. Cada objeto prototipo predeterminado tiene un constructor de propiedades; apunta a la función misma

function Person () {
         this .name = 'zhufeng' ;
         this .age = 9 ; 
    } 

    console.log (Person.prototype.constructor === Person); 
    Person.prototype.getName = function () { 
        console.log ( this .name); 
    }; 
    console.log (Person.prototype.getName ()); 

    // var per1 = new Person (); 
    var per1 = new Person; // Cuando el constructor no necesita pasar parámetros, el paréntesis puede ser Omitido; 
    // var per2 = nueva Persona (); 
    // per1 se llama una instancia de la clase Persona; al mismo tiempo, también es un objeto;
    console.log (per1 .__ proto__ === Person.prototype); 
    console.log (per1); 
    per1.getName ();

 

Supongo que te gusta

Origin www.cnblogs.com/icon-JIA/p/12732183.html
Recomendado
Clasificación