JavaScript プロトタイプの継承パターンに関するいくつかのチュートリアルを読みましたが、次の 2 つの中でどちらがベスト プラクティスであるかはわかりません。多くの人がこの継承パターンを行っていることに気付きました。
var A = function (){}
A.prototype = {}
var B = function () {
A.apply(this, arguments); // Calling the constructor of A
}
B.prototype = new A(); // Inherit from A through an instance
代わりに、代わりに次のパターンを実行するソースがいくつかあります。
var A = function (){}
A.prototype = {}
var B = function () {
A.apply(this, arguments); // Calling the constructor of A
}
for (var prop in A.prototype) {
B.prototype[prop] = A.prototype[prop]; // Inherit from A by copying every property/methods from A
}
どちらのパターンも機能しますが、後者の継承パターン (つまり、親のプロトタイプから各プロパティ/メソッドをコピーする) を使用する人はめったにいません。プロパティ/メソッドを親から子に直接コピーすると何か問題がありますか? また、これら 2 つのパターンは本質的にいくつかの点で異なりますか?
ありがとうございました。