"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Las razones y ventajas del método prototipo que se define fuera del constructor

Las razones y ventajas del método prototipo que se define fuera del constructor

Publicado el 2025-04-19
Navegar:138

Why Should Prototype Methods Be Defined Outside the Constructor Function?

asignando métodos prototipo dentro de la función constructora: potencial pitfalls

estilísticamente, algunos prefieren la siguiente estructura para definir los métodos de prototipo:

var filtro = function (categoría, valor) { this.Category = Categoría; this.Value = value; // El producto es un objeto json Filtro.prototype.checkproduct = function (producto) { // Ejecutar algunas cheques return is_match; } };
var Filter = function( category, value ){
  this.category = category;
  this.value = value;

  // product is a JSON object
  Filter.prototype.checkProduct = function( product ){
    // run some checks
    return is_match;
  }
};
Sin embargo, este enfoque tiene varios inconvenientes en comparación con la estructura alternativa:

var filtro = function (categoría, valor) { this.Category = Categoría; this.Value = value; }; // var filtro = function () {...} Filtro.prototype.checkproduct = function (producto) { // Ejecutar algunas cheques return is_match; }
var Filter = function( category, value ){
  this.category = category;
  this.value = value;

  // product is a JSON object
  Filter.prototype.checkProduct = function( product ){
    // run some checks
    return is_match;
  }
};

inconvenientes de funciones:

  1. asignación redundante e ineficiente: el método prototipo se asigna varias veces, que no esnecesario y puede tener implicaciones de actuación. Las variables del constructor desde el método prototipo pueden conducir a resultados inesperados. Por ejemplo:
  2. var contador = function (inicialValue) { valor var = inicialValue; // El producto es un objeto json Counter.prototype.get = function () { valor de retorno; } }; var c1 = nuevo contador (0); var c2 = nuevo contador (10); console.log (c1.get ()); // salidas 10, debe emitir 0 en este escenario, get () devuelve el valor del valor variable local de C2 en lugar de c1 porque el método cierre el cierre del valor definido recientemente en el prototipo. Constructor:
  3. La primera estructura prohíbe acceder al prototipo fuera del constructor, potencialmente limitando la flexibilidad.
var Filter = function( category, value ){
  this.category = category;
  this.value = value;

  // product is a JSON object
  Filter.prototype.checkProduct = function( product ){
    // run some checks
    return is_match;
  }
};
ubicación del método:

En la segunda estructura, los métodos se colocan directamente en el objeto en lugar del prototipo, que puede mejorar el rendimiento en algunos Casos.

Conclusión:

  • Si bien la primera estructura puede ser estilísticamente agradable, puede introducir inconvenientes funcionales y problemas de alcance. Generalmente se recomienda asignar métodos prototipo fuera de la función del constructor (como en la segunda estructura) para evitar posibles problemas.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3