ในฐานะที่เป็นภาษาแบบไดนามิกวัตถุ JS ใน JavaScript มีอิสระในระดับสูงในไวยากรณ์ดังนั้นมันจึงสร้างฟังก์ชั่นและรูปแบบการเขียน N
ใน 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 <10,00000; i ++)
-
varc = newClass1 ();
//total.push(c);
-
varb = newDate ();
การแจ้งเตือน (b.getTime ()-a.getTime ());
-
functiontest2 ()
-
vara = newDate ();
สำหรับ (vari = 0; i <10,00000; i ++)
-
varc = newClass2 ();
//total.push(c);
-
varb = newDate ();
การแจ้งเตือน (b.getTime ()-a.getTime ());
-
ขั้นตอนแรกคือการทดสอบเวลาดำเนินการ: พบว่า test1 () ใช้เวลา 142ms ในขณะที่ test2 () ใช้เวลา 50ms เท่านั้น ในแง่ของประสิทธิภาพเวลาวิธีการต้นแบบมีประสิทธิภาพมากกว่านี้