Hoy en día, muchas personas usan objetos JS para implementar código después de aprender JSP, pero en JavaScript, los objetos JS son un lenguaje dinámico. Muchos amigos que recién comienzan sentirán curiosidad sobre ¿Cuáles son los métodos de escritura orientados a objetos de JavaScript? ¿Cuál es la diferencia? Permítanme explicar ahora los métodos de escritura orientados a objetos de JavaScript.
En JS, generalmente hay dos formas de implementar OOP:
El primero: usa esta palabra clave
función class1 ()
{
this.OnClick = function (e)
{
para (var i = 0; i <1000; i ++)
{
var a = nueva fecha ();
}
}
}
Usando esto. El método puede agregar propiedades y métodos a los objetos de manera flexible, y es similar a la mayoría de los idiomas OOP, e incluso se puede agregar durante la operación.
El segundo tipo: use palabras clave prototipo
Función ClickFunc (E)
{
para (var i = 0; i <1000; i ++)
{
var a = nueva fecha ();
}
}
función class2 ()
{
}
Class2.prototype.onclick = clickfunc;
En términos de uso, no hay primero que parezca flexible. Sin embargo, antes de que un objeto sea nuevo, también puede agregar las propiedades y métodos de un objeto en cualquier momento.
Pero no son iguales. Hablando relativamente, prefiero el primero porque el primer método está relativamente concentrado y más fácil de leer el código. Sin embargo, cuando se ejecuta, su eficiencia operativa varía mucho. Echemos un vistazo al código de prueba a continuación:
var en total = nueva array ();
FUNCIÓN TEST1 ()
{
var a = nueva fecha ();
para (var i = 0; i <10000; i ++)
{
var c = new class1 ();
//total.push(c);
}
var b = nueva fecha ();
alerta (b.gettime ()-a.gettime ());
}
función test2 ()
{
var a = nueva fecha ();
para (var i = 0; i <10000; i ++)
{
var c = new class2 ();
//total.push(c);
}
var b = nueva fecha ();
alerta (b.gettime ()-a.gettime ());
}
El primer paso es probar el tiempo de ejecución: se encuentra que Test1 () toma 142 ms, mientras que Test2 () solo toma 50 ms. En términos de eficiencia del tiempo, el método prototipo es más eficiente que este.
El segundo paso de los objetos JavaScript es probar el uso de la memoria, eliminar los comentarios en Total.push (c); en total.push (c); para que se agregan a la matriz para evitar que los objetos no referenciados sean GC cuando hay muchos objetos cuando se crean. Como resultado, se descubrió que la brecha no era muy grande. El primer método ocupó veinte o treinta m de memoria, mientras que el segundo método solo requería más de cien k.
JavaScript Crear objeto
Causa inferencia:
Al procesar estos dos códigos, el primer tipo es JS Parser, que crea un método separado para cada objeto, que aumenta la sobrecarga de la memoria y aumenta el tiempo de ejecución al crear métodos. El segundo tipo es que JS Parser, como la mayoría de los compiladores OOP, almacena los segmentos de datos y los segmentos de métodos del objeto por separado. Para los datos privados del objeto, una copia por objeto, y estos métodos se colocan en el segmento de método público, por lo que se puede reducir el tiempo de ejecución y la sobrecarga de memoria.
Lo anterior es el editor de Fo Xin para explicar las diferencias en los métodos de escritura orientados a objetos y las diferencias de JavaScript. Si desea saber más profundamente, puede ir al canal de tecnología Fo Xin para comprender.