Как динамичный язык, Object JS в JavaScript имеет значительные степени свободы в синтаксисе, поэтому он создает функцию и n стилей письма.
В JS, как правило, есть два способа внедрения ООП:
Первое: используйте это ключевое слово
functionClass1 ()
{
this.onclick = function (e)
{
для (vari = 0; i <1000; i ++)
{
vara = newdate ();
}
}
}
Используя это. Метод может гибко добавлять свойства и методы к объектам, и он похож на большинство языков ООП и может даже добавляться во время работы.
Второй тип: используйте ключевые слова прототипа
functionClickFunc (e)
{
для (vari = 0; i <1000; i ++)
{
vara = newdate ();
}
}
functClass2 ()
{
}
Class2.prototype.onclick = clickfunc;
С точки зрения использования, нет первого, который кажется гибким. Однако, прежде чем объект станет новым, вы также можете добавить свойства и методы объекта в любое время.
Но они не равны. Относительно говоря, я предпочитаю первый, потому что первый метод относительно сконцентрирован и легче считывать код. Однако при запуске их операционная эффективность сильно варьируется. Давайте посмотрим на тестовый код ниже:
vartotal = newarray ();
functionTest1 ()
{
vara = newdate ();
для (vari = 0; i <10000; i ++)
{
varc = newClass1 ();
//total.push(C);
}
varb = newDate ();
Alert (B.GetTime ()-A.GetTime ());
}
functionTest2 ()
{
vara = newdate ();
для (vari = 0; i <10000; i ++)
{
varc = newClass2 ();
//total.push(C);
}
varb = newDate ();
Alert (B.GetTime ()-A.GetTime ());
}
Первым шагом является проверка времени выполнения: обнаружено, что test1 () занимает 142 мс, а Test2 () занимает всего 50 мс. С точки зрения эффективности времени, метод прототипа более эффективен, чем этот.