2013-06-01 4 views
1

Может ли кто-нибудь взглянуть на это и помочь мне понять, почему prototype.placing не является консольным протоколированием? Спасибо за вашу помощь:JS Prototype Not Working

(function() { 
    function Rider(name) { 
     this.name = name; 
     this.show = function(showName) { 
      console.log(this.name + " rode in the " + showName); 
     }; 
    } 

    var riderOne = new Rider("Billy Bobb"); 
    riderOne.show("Summer Show"); 

    Rider.prototype.placing = function(place) { 
     console.log(this.rider + " ended up in " + place + " at " + 
       this.showName); 
    } 
})(); 
+3

Где вы его назвали? (Из взглядов, нет, где) –

+0

Да, вот где я застрял в этом. Я не мог заставить его подняться на консоль, поэтому я решил, что, должно быть, я не использовал это право. Где/как я могу назвать это так, чтобы он отображался в консоли? – pertrai1

+0

ну, вы должны называть его где-то после его определения. – steo

ответ

2

здесь смотрите, это работает: http://jsfiddle.net/D3BKz/1/

код:

(function() { 
    function Rider(name) { 
     this.name = name; 
     this.showName = ""; 
     this.show = function(showName) { 
      this.showName = showName; 
      console.log(this.name + " rode in the " + showName); 
     }; 
    } 
    Rider.prototype.placing = function(place) { 
     console.log(this.name + " ended up in " + place + " at " + 
       this.showName); 
    } 
    var riderOne = new Rider("Billy Bobb"); 
    riderOne.show("Summer Show"); 
    riderOne.placing("1st"); 

})(); 

Я изменил это:

Rider.prototype.placing = function(place) { 
    console.log(this.rider+ " ended up in " + place + " at " + 
      this.showName); 
} 

к этому :

Rider.prototype.placing = function(place) { 
    console.log(this.name + " ended up in " + place + " at " + 
      this.showName); 
} 

, а затем я использовал

riderOne.placing("1st"); 

и вот консольный вывод:

Billy Bobb rode in the Summer Show 
Billy Bobb ended up in 1st at Summer Show 

EDIT:

, как кто-то указал, showName никогда не определяется внутри Rider класс. Я обновил код, добавив свойство showName в класс.

+0

Спасибо, что нашли время. Я сделал это также примерно в то же время, когда вы делали скрипку. Последняя часть, на которую я застрял, чтобы понять суть этого, заключается в том, как получить имя шоу, чтобы оно не было неопределенным? Есть ли часть объекта Rider, которую мне нужно изменить? – pertrai1

+0

@ pertrai1 Я обновил свой код, и я добавил часть showName, посмотрю :) – BeNdErR

+0

Да, это сработало отлично. Спасибо, что нашли время снова, так как я смог работать бок о бок с изменениями и пытаться выяснить, что нужно изменить. Возможность увидеть эти изменения помогла мне узнать больше об использовании прототипа. – pertrai1