所以我正在学习OOP。以下示例对我不起作用。而且无法弄清楚为什么。我已经将代码简化为两个变量。我的问题实际上是car1.setOdometer(1000)
当我尝试时这行不起作用。基本上这行自动改变OdometerReading变量。然后,当我点击按钮3时,我得到了“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,那么Car1,我得到一个未定义的消息。
但是,当我进行以下更改时,代码可以正常工作。 在这里编辑'this.setOdometer':
this.setOdometer=function(newMiles){this.odometerReading=1000;}
删除
car1.setOdometerReading(1000);
我错过了什么,或者教程书是错的?
答案 0 :(得分:1)
我看到类Car和Car类型的新对象。
答案 1 :(得分:1)
以下是工作实施的参考代码。正确设置odometerReading
的{{1}}。错误只是因为拼写错误,我猜。
car1