ここでサンプルを見つけたjavascriptプロトタイプに少し興味があります。 少し変更を加えたので、次のように試すことができます。
<html>
<body>
<script>
function Product(name, price) {
this.name = name;
this.price = price;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
this.otherName = name;
}
Food.prototype = new Product();
function Toy(name, price) {
Product.call(this, name, price);
this.category = 'toy';
}
Toy.prototype = new Product();
var cheese = new Food('feta', 5);
var fun = new Toy('robot', 40);
var prod = new Product('test', 20);
console.log(cheese);
console.log(fun);
console.log(prod);
</script>
</body>
</html>
そしてそれはこのように戻ります
cheese = Food {name: "feta", price: 5, category: "food", otherName: "feta", name: undefined, price: undefined}
fun = Toy {name: "robot", price: 40, category: "toy", name: undefined, price: undefined}
prod = Product {name: "test", price: 20}
そのmakeプロパティname
とprice
2回、区別Food.prototype = new Product();
してToy.prototype = new Product();
なぜその行を使用する必要があるのですか?