我是初学者,我知道这个问题听起来很蹩脚,所以我很抱歉,但我似乎无法找到答案,也许我只是在找错了地方。这是代码:
var Car = function(){
var speed = 10;
this.accelerate = function(change){
speed += change;
};
this.decelarate = function(){
speed -= 5;
};
this.speed = function(){
return speed;
};
};
var myCar = new Car();
document.getElementById("demo").innerHTML = myCar.accelerate(1);myCar.decelerate();myCar.speed();
这给了我未定义的。为什么?如何在“Car”构造函数中获取加速,减速和加速方法的值?
答案 0 :(得分:2)
问题是您没有return
更新后的价值。
this.accelerate = function(change) {
return speed += change;
};
答案 1 :(得分:0)
您的accelerate
方法确实没有返回值。
你应该致电:
myCar.accelerate(1);
然后
document.getElementById('demo').innerHTML = myCar.speed();
查看汽车的新速度
答案 2 :(得分:0)
您缺少加速功能的返回声明。这样,它会返回计算出的值。
答案 3 :(得分:0)
上述代码中存在错误。
您必须在所有三个函数中返回值。 您的代码中缺少return语句。
this.accelerate = function(change) {
speed += change;
return speed;
};
this.decelarate = function() {
speed -= 5;
speed;
};
答案 4 :(得分:0)
你的回答中有一个拼写错误:“decelarate”而不是“减速”。
此外,您在“速度”功能中缺少一个return语句。
在动词之后命名方法也是一个很好的约定。因此,如果某种方法可以为您提供速度,您可以将其命名为getSpeed。
var Car = function() {
var speed = 10;
this.accelerate = function(change) {
speed += change;
};
this.decelerate = function() {
speed -= 5;
};
this.getSpeed = function() {
return speed;
};
};
var myCar = new Car();
myCar.accelerate(1);
myCar.decelerate();
document.getElementById('demo').innerHTML = myCar.getSpeed();
<div id="demo"></div>