Selama ulasan kode hari ini, seorang rekan saya mengatakan sesuatu yang menarik:
prototype
hanya berguna ketika Anda membutuhkan warisan - dan kapan warisan merupakan ide bagus ?
Saya memikirkan hal ini dan saya menyadari bahwa saya biasanya menggunakan warisan untuk menyiasati kode yang awalnya dirancang dengan buruk. Gaya OO modern lebih suka komposisi daripada warisan, tetapi saya tidak tahu bahasa apa pun yang telah membawa ini ke hati dan benar-benar menegakkannya .
Apakah ada bahasa pemrograman tujuan umum dengan kelas, objek, metode, antarmuka, dan sebagainya, yang melarang pewarisan berbasis kelas? (Jika ide seperti itu tidak masuk akal, mengapa tidak?)
implements
kata kunci dan antarmuka (sebagai lawan dari warisan negara dan perilaku yang diperkenalkan dengan penggunaan extends
kata kunci pada kelas yang berisi implementasi apa pun).
new
, this
dan prototype
terlalu banyak ladang ranjau untuk penggunaan umum IMO.
prototype
juga berguna ketika Anda memiliki metode dan properti publik yang harus dibagi di antara instance. Ini juga berguna karena memungkinkan Anda untuk benar menggunakaninstanceof
operator dalam JavaScript:if (foo instanceof Foo) { ...
.