Como uma linguagem dinâmica, o objeto JS em JavaScript possui consideráveis graus de liberdade na sintaxe, por isso cria uma função e n estilos de escrita.
No JS, geralmente existem duas maneiras de implementar o OOP:
O primeiro: use esta palavra -chave
functionClass1 ()
{
this.OnClick = function (e)
{
for (vari = 0; i <1000; i ++)
{
Vara = newDate ();
}
}
}
Usando isso. O método pode adicionar propriedades e métodos aos objetos de maneira flexível, e é semelhante à maioria dos idiomas OOP e pode até ser adicionado durante a operação.
O segundo tipo: use palavras -chave do protótipo
functionClickfunc (e)
{
for (vari = 0; i <1000; i ++)
{
Vara = newDate ();
}
}
functionClass2 ()
{
}
Class2.Prototype.OnClick = clickfunc;
Em termos de uso, não há primeiro que parece flexível. No entanto, antes que um objeto seja novo, você também pode adicionar as propriedades e métodos de um objeto a qualquer momento.
Mas eles não são iguais. Relativamente falando, prefiro o primeiro porque o primeiro método é relativamente concentrado e mais fácil de ler o código. No entanto, ao correr, sua eficiência operacional varia muito. Vamos dar uma olhada no código de teste abaixo:
Vartotal = newArray ();
functionTest1 ()
{
Vara = newDate ();
for (vari = 0; i <10000; i ++)
{
Varc = newClass1 ();
//total.push(c);
}
varb = newDate ();
alert (b.gettime ()-a.gettime ());
}
functionTest2 ()
{
Vara = newDate ();
for (vari = 0; i <10000; i ++)
{
Varc = newClass2 ();
//total.push(c);
}
varb = newDate ();
alert (b.gettime ()-a.gettime ());
}
A primeira etapa é testar o tempo de execução: verifica -se que o Test1 () leva 142ms, enquanto o Test2 () leva apenas 50ms. Em termos de eficiência do tempo, o método do protótipo é mais eficiente que isso.