Atualmente, muitas pessoas usam objetos JS para implementar o código depois de aprender JSP, mas no JavaScript, os objetos JS são uma linguagem dinâmica. Muitos amigos que estão apenas começando estarão curiosos sobre quais são os métodos de escrita orientados a objetos de JavaScript? Qual é a diferença? Deixe-me agora explicar os métodos e diferenças de escrita orientados a objetos JavaScript.
No JS, geralmente existem duas maneiras de implementar o OOP:
O primeiro: use esta palavra -chave
função classe1 ()
{
this.OnClick = function (e)
{
para (var i = 0; i <1000; i ++)
{
var a = new Date ();
}
}
}
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
função clickfunc (e)
{
para (var i = 0; i <1000; i ++)
{
var a = new Date ();
}
}
função classe2 ()
{
}
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:
var total = new Array ();
função test1 ()
{
var a = new Date ();
for (var i = 0; i <10000; i ++)
{
var c = nova classe1 ();
//total.push(c);
}
var b = new Date ();
alert (b.gettime ()-a.gettime ());
}
função test2 ()
{
var a = new Date ();
for (var i = 0; i <10000; i ++)
{
var c = nova classe2 ();
//total.push(c);
}
var b = new Date ();
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.
A segunda etapa dos objetos JavaScript é testar o uso da memória, remover os comentários no total.push (c); no total.push (c); para que sejam adicionados à matriz para impedir que os objetos não referenciados sejam GC quando há muitos objetos quando são criados. Como resultado, verificou -se que a lacuna não era muito grande. O primeiro método ocupou vinte ou trinta m de memória, enquanto o segundo método exigia apenas mais de cem K.
JavaScript Criar objeto
Causa inferência:
Ao processar esses dois códigos, o primeiro tipo é o analisador JS, que cria um método separado para cada objeto, o que aumenta a sobrecarga da memória e aumenta o tempo de execução ao criar métodos. O segundo tipo é que o analisador JS, como a maioria dos compiladores OOP, armazena os segmentos de dados e segmentos de método do objeto separadamente. Para os dados privados do objeto, uma cópia por objeto e esses métodos são colocados no segmento de métodos públicos, para que o tempo de execução e a sobrecarga da memória possam ser reduzidos.
O acima é o editor do FO Xin para explicar as diferenças nos métodos de escrita orientados a objetos e diferenças de JavaScript. Se você quiser saber mais profundamente, pode ir ao canal de tecnologia para entender.