2013-08-17 2 views
2

У меня есть следующиеСсылка Родительские Конструкторы Свойство в детском Конструктора в JavaScript

function mild_bird(){ 
    this.name = "catherine"; 
    this.origin = "st petersburg"; 
    this.location = "brighton beach"; 
} 

mild_bird.prototype.get_info = function(){ 
    return "poo" + ", " + "pee"; 
} 

function wild_bird(nickname){ 
    this.nickname = nickname; 
    //anyway to reference parameters in mild_bird constructor's? 
    this.name = mild_bird.prototype.name; 
    this.origin = mild_bird.prototype.origin; 
    this.location = mild_bird.prototype.location; 
} 

wild_bird.prototype = new mild_bird(); 
wild_bird.prototype.constructor = wild_bird; 

var the_wild_bird = new wild_bird("sandy"); 
alert(the_wild_bird.name); 

настороже на последнюю строку возвращает неопределенное значение. Я бы хотел, чтобы он вернулся «Кэтрин». Можно ли передать свойства в конструкторе mild_bird в конструктор wild_bird?

ответ

1

Вы должны вызвать конструктор родителя внутри дочернего конструктора. Использование .call(this) гарантирует, что вы установите контекст для объекта, созданного конструктором childrens.

function wild_bird(nickname){ 
    mild_bird.call(this); 
    this.nickname = nickname; 
} 
0

Уходя ваш вопрос:

Ссылка Родитель Конструктор Свойства в детской Конструктора в JavaScript

Есть Распознать John Resig's Simply Inheritance Model - Это должно убрать вещи для вас.

Смежные вопросы