متد ()super و کلمه کلیدی super

از متد ()super زمانی که بخواهید سازنده کلاس پدر را فراخوانی کرده و از کدهای آن استفاده کنیم، استفاده می شود. به مثال زیر توجه کنید:

 1: class Parent 
 2: {
 3:     constructor()
 4:     {
 5:         console.log("Message from parent class!");
 6:     }
 7: }
 8: 
 9: class Child extends Parent
10: {
11:     constructor()
12:     {
13:         super();
14:     }   
15: }
16: 
17: var child = new Child();
Message from parent class!

به این نکته توجه کنید که حتی اگر کلاس پدر دارای هیچ سازنده ای هم نباشد، اگر یک کلاس از آن ارث بری کرد، باز هم باید در سازنده کلاس فرزند از متد ()super استفاده کنید:

 1: class Parent 
 2: {
 3: 
 4: }
 5: 
 6: class Child extends Parent
 7: {
 8:     constructor()
 9:     {
10:         super();
11:         console.log("Message From Child Class!");   
12:     }   
13: }
14: 
15: var child = new Child();
Message From Child Class!

اگر متد ()super فراموش شود با خطای ReferenceError: Must call super constructor in derived class مواجه می شوید. از کلمه کلیدی super زمانی که بخواهید از یک فیلد یا متد کلاس پدر در داخل سازنده کلاس فرزند استفاده کنید، استفاده می شود. به مثال زیر توجه کنید:

 1: class Parent 
 2: {
 3:     constructor()
 4:     {
 5:         console.log("Message from parent class!");
 6:     }
 7: 
 8:     ShowMessage()
 9:     {
10:         console.log("Hello World!");
11:     }
12: }
13: 
14: class Child extends Parent
15: {
16:     constructor()
17:     {
18:         super();
19:         super.ShowMessage();
20:     }   
21: }
22: 
23: var child = new Child();
Message from parent class!
Hello World!