كلغة ديناميكية ، يتمتع كائن JS في JavaScript بدرجات كبيرة من الحرية في بناء الجملة ، لذلك يخلق وظيفة وأنماط الكتابة.
في JS ، هناك عمومًا طريقتان لتنفيذ OOP:
الأول: استخدم هذه الكلمة الرئيسية
FunctionClass1 ()
{
this.onclick = function (e)
{
لـ (vari = 0 ؛ i <1000 ؛ i ++)
{
vara = newDate () ؛
}
}
}
باستخدام هذا. يمكن أن تضيف الطريقة خصائص وطرق إلى الكائنات بمرونة ، وهي مشابهة لمعظم لغات OOP ، ويمكن إضافتها حتى أثناء التشغيل.
النوع الثاني: استخدم الكلمات الرئيسية النموذجية
FunctionClickfunc (E)
{
لـ (vari = 0 ؛ i <1000 ؛ i ++)
{
vara = newDate () ؛
}
}
FunctionClass2 ()
{
}
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 مللي ثانية. من حيث كفاءة الوقت ، تكون طريقة النموذج الأولي أكثر كفاءة من هذا.