Твой вариант будет работать, но он кривой
надо хотя бы так
function Product() {}
Product.prototype = {
getName: function() {
return this.name;
}
}
function Apple(name) {
this.name=name
}
Apple.prototype=Object.create(Product.prototype)
var apple = new Apple("apple");
alert(apple.getName());
Но лучше восстановить связи:
function Product() {}
Product.prototype.getName=function() {
return this.name;
}
function Apple(name) {
this.name=name
}
Apple.prototype=Object.create(Product.prototype)
Apple.prototype.constructor=Apple
var apple = new Apple("apple");
alert(apple.getName())
alert(apple.constructor);
Тут, собчтвенно, класс product вообще не нужен. Ну ладно, пусть будет
По сабжу. В копировании плохо то, что оно засирает память, и, в некотором смысле, нарушает модульность.