ES6'da, varyantik argümanlardan geçen bir ana kurucuyu çağırmanın bir yolu var mı, bir foo.apply(this, arguments)
? Bir yanıt aradım ve gördüğüm tek örnek, super()
(argüman yok) veya super(x, y)
(belirli argümanlarla) olarak adlandırılıyor. super.apply(this, arguments)
çalışmıyormuş gibi görünüyor.Değişken argümanlarla ES6 sınıfı süper()
cevap
ben rahat bulup takip desen halinde
constructor(...args) {
super(...args);
}
sahip olduğun ve kullanım adlandırılmış argümanlar yerine yapabilirsiniz:
constructor(a, b, c) {
super(...arguments);
}
Referanslar:
Eğer bunu bir tarayıcıda kullanıyorsanız, destek oldukça yeni olduğundan ve bazı nedenlerden dolayı destek için yayılan operatör desteğinin farkında olun. spread operatörü, 'class' gibi diğer ES6 özelliklerinden daha sonra geldi. Örneğin, herhangi bir IE desteği olduğunu sanmıyorum. Tabii ki, bir transpiler de kullanabilirsiniz. – jfriend00
@ jfriend00 IE, ES2015'ten neredeyse hiç bir şey desteklemiyor, bu yüzden kimin umurunda :-) – zerkms
En son ve destek sınıfı olan "Chrome" sürümlerini bulmak kolay, ancak yayılan operatörü desteklemiyor. OP'ye sadece ihtiyaç duydukları tarayıcı desteğine sahip olduklarından emin olmalarını tavsiye ediyorum. Bu kadar savunmasın. Çevreniz destekliyorsa bu iyi bir cevaptır. – jfriend00
Yayma operatörü daha iyi bir uygulamadır. – Oriol
'super.constructor.apply (this, arguments)' 'bu' başlatılmışsa çalışacaktır – Bergi