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

如何在javascript中调用新对象的方法?,javascript,Javascript,我是一个初学者,我知道这个问题听起来很蹩脚,所以很抱歉,我似乎找不到答案,也许我只是找错了地方。代码如下: var Car = function(){ var speed = 10; this.accelerate = function(change){ speed += change; }; this.decelarate = function(){ speed -= 5; }; this.speed = function(){ return s

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

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

问题在于您没有
返回更新后的值

this.accelerate = function(change) {
  return speed += change;
};

您的
accelerate
方法不返回任何值。 你应致电:

myCar.accelerate(1);
然后


要查看汽车的新速度,您缺少加速功能的返回语句。这样,它将返回计算值。

上述代码中有一个错误

this.accelerate = function(change) {
  return speed += change;
};
必须在所有三个函数中返回值。 代码中缺少return语句

this.accelerate = function(change) {
    speed += change;
    return speed;
  };
  this.decelarate = function() {
    speed -= 5;
    speed;
  };

你的答案中有一个拼写错误:“减速”而不是“减速”

此外,在“speed”函数中缺少return语句

用动词来命名方法也是一种很好的习惯。因此,如果有一个方法应该为您提供速度,您可以将其命名为getSpeed

var Car=function(){
无功转速=10;
this.accelerate=功能(更改){
速度+=变化;
};
this.decelerate=函数(){
速度-=5;
};
this.getSpeed=函数(){
返回速度;
};
};
var myCar=新车();
我的车。加速(1);
我的车。减速();
document.getElementById('demo').innerHTML=myCar.getSpeed()

此外,它在控制台中写到myCar.decreate和myCar.speed不是一个函数…它给你一个未定义的函数,因为
accelerate
方法返回未定义。@我倾向于认为所有代码都在一行的原始代码显示了问题/混乱,给定在该行调用的最后一个函数是否返回值。@JamesThorpe噢。。。有道理。让我恢复编辑。