如何在javascript中调用新对象的方法?

时间:2018-01-19 09:03:49

标签: javascript

我是初学者,我知道这个问题听起来很蹩脚,所以我很抱歉,但我似乎无法找到答案,也许我只是在找错了地方。这是代码:

     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”构造函数中获取加速,减速和加速方法的值?

5 个答案:

答案 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>