Итак, я изучаю ООП. Следующий пример не работает для меня. И не могу понять, почему. Я упростил код до двух переменных. Моя проблема действительно в car1.setOdometer(1000)
Эта строка не работает, когда я пытаюсь. В основном эта строка автоматически изменяет переменную OdometerReading. Затем, когда я нажимаю кнопку 3, я получаю строку undefined для «Miles».Метод установки ООП не работает должным образом
JS
function Car(Make, Miles) {
this.make = Make;
this.odometerReading = Miles;
this.showInfo = function() {
alert(this.make + this.odometerReading);
};
this.setOdometer = function(newMiles) {
this.odometerReading = "newMiles";
};
}
var car1 = new Car("X", 50);
var car2 = new Car("Y", 75);
car1.setOdometerReading(1000); //this doesn't work for me.
//It winds up changing odometerReading on car1.showInfo() from the onset!
HTML
<input type="button" value="Car1" onclick="car1.showInfo()">
<input type="button" value="Car2" onclick="car2.showInfo()">
<input type="button" value="Change Car1" onclick="car1.setOdometer()">
книга пример, как и выше. Но когда я нажимаю Car1, это изменение произошло автоматически. Когда я нажимаю, меняем Car1, THEN Car1, я получаю неопределенное сообщение.
Но когда я вношу следующие изменения, код работает. редактировать 'this.setOdometer' здесь:
this.setOdometer=function(newMiles){this.odometerReading=1000;}
удалить
car1.setOdometerReading(1000);
Могу ли я что-то отсутствует, или учебник книга просто неправильно?
Этот код не содержит закрывающего кронштейна, начинающегося с 'function Cars (Make, Miles) {'? Также функция имеет неправильное имя, она должна быть 'Car' вместо' Cars'. –
setOdometerReading() не определен нигде. – Prashant
Вы копируете это где-то или записываете вручную? Имеются ошибочные имена функций и другие небольшие ошибки. Двойной проверить все. Используйте инструменты вашего браузера [http://www.creativebloq.com/javascript/javascript-debugging-beginners-3122820). – ekuusela