Como un lenguaje dinámico, el objeto JS en JavaScript tiene considerables grados de libertad en la sintaxis, por lo que crea una función y n estilos de escritura.
En JS, generalmente hay dos formas de implementar OOP:
El primero: usa esta palabra clave
functClass1 ()
{
this.OnClick = function (e)
{
para (vari = 0; i <1000; i ++)
{
vara = newdate ();
}
}
}
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
functClickFunc (e)
{
para (vari = 0; i <1000; i ++)
{
vara = newdate ();
}
}
FunctionClass2 ()
{
}
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:
vartotal = newArray ();
functionTest1 ()
{
vara = newdate ();
para (vari = 0; i <10000; i ++)
{
varc = newClass1 ();
//total.push(c);
}
varb = newdate ();
alerta (b.gettime ()-a.gettime ());
}
functionTest2 ()
{
vara = newdate ();
para (vari = 0; i <10000; i ++)
{
varc = newClass2 ();
//total.push(c);
}
varb = newdate ();
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.