Показать сообщение отдельно
  #3 (permalink)  
Старый 28.11.2014, 17:34
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Твой вариант будет работать, но он кривой надо хотя бы так
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 вообще не нужен. Ну ладно, пусть будет
По сабжу. В копировании плохо то, что оно засирает память, и, в некотором смысле, нарушает модульность.

Последний раз редактировалось krutoy, 28.11.2014 в 17:42.
Ответить с цитированием