В настоящее время многие люди используют объекты JS для реализации кода после обучения JSP, но в JavaScript объекты JS являются динамичным языком. Многим друзьям, которые только начинают работу, будут любопытно, каковы объектно-ориентированные методы письма JavaScript? В чем разница? Позвольте мне теперь объяснить методы и различия, ориентированные на объект, ориентированные на JavaScript.
В JS, как правило, есть два способа внедрения ООП:
Первое: используйте это ключевое слово
Функция Class1 ()
{
this.onclick = function (e)
{
для (var i = 0; i <1000; i ++)
{
var a = new Date ();
}
}
}
Используя это. Метод может гибко добавлять свойства и методы к объектам, и он похож на большинство языков ООП и может даже добавляться во время работы.
Второй тип: используйте ключевые слова прототипа
Функция clickfunc (e)
{
для (var i = 0; i <1000; i ++)
{
var a = new Date ();
}
}
Функция класса2 ()
{
}
Class2.prototype.onclick = clickfunc;
С точки зрения использования, нет первого, который кажется гибким. Однако, прежде чем объект станет новым, вы также можете добавить свойства и методы объекта в любое время.
Но они не равны. Относительно говоря, я предпочитаю первый, потому что первый метод относительно сконцентрирован и легче считывать код. Однако при запуске их операционная эффективность сильно варьируется. Давайте посмотрим на тестовый код ниже:
var total = new Array ();
Функциональный тест1 ()
{
var a = new Date ();
для (var i = 0; i <10000; i ++)
{
var c = new class1 ();
//total.push(C);
}
var b = new Date ();
Alert (B.GetTime ()-A.GetTime ());
}
Функциональный тест2 ()
{
var a = new Date ();
для (var i = 0; i <10000; i ++)
{
var c = new class2 ();
//total.push(C);
}
var b = new Date ();
Alert (B.GetTime ()-A.GetTime ());
}
Первым шагом является проверка времени выполнения: обнаружено, что test1 () занимает 142 мс, а Test2 () занимает всего 50 мс. С точки зрения эффективности времени, метод прототипа более эффективен, чем этот.
Второй этап объектов JavaScript - это тестирование использования памяти, удалить комментарии на Total.push (c); в общей сложности. push (c); Таким образом, они добавляются в массив, чтобы предотвратить незачетные объекты GC, когда есть много объектов, когда они создаются. В результате было обнаружено, что разрыв был не очень большим. Первый метод занял двадцать или тридцать М памяти, в то время как второй метод требовал только более ста К.
JavaScript создать объект
Причина вывод:
При обработке этих двух кодов первым типом является JS Parser, который создает отдельный метод для каждого объекта, который увеличивает накладные расходы на память и увеличивает время выполнения при создании методов. Второй тип заключается в том, что анализатор JS, как и большинство компиляторов ООП, хранит сегменты данных объекта и сегменты методов отдельно. Для личных данных объекта одна копия на объект, и эти методы размещаются в общедоступном сегменте методов, поэтому время выполнения и накладные расходы на память могут быть уменьшены.
Выше приведено редактор FO XIN, чтобы объяснить различия в объектно-ориентированных методах письма и различий JavaScript. Если вы хотите узнать глубже, вы можете пойти на канал технологии для XIN, чтобы понять.