Selama ulasan kode hari ini, seorang rekan saya mengatakan sesuatu yang menarik:
prototypehanya 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?)
implementskata kunci dan antarmuka (sebagai lawan dari warisan negara dan perilaku yang diperkenalkan dengan penggunaan extendskata kunci pada kelas yang berisi implementasi apa pun).
new, thisdan prototypeterlalu banyak ladang ranjau untuk penggunaan umum IMO.
prototypejuga berguna ketika Anda memiliki metode dan properti publik yang harus dibagi di antara instance. Ini juga berguna karena memungkinkan Anda untuk benar menggunakaninstanceofoperator dalam JavaScript:if (foo instanceof Foo) { ....