Javascript 错误:不是函数。我怎样才能修好它?

Javascript 错误:不是函数。我怎样才能修好它?,javascript,function,Javascript,Function,这是我的电梯程序。但我有错误 var person = { name: "Roman", position: 2, goal: 9 }; var lift = { getPosition : function() { var x = Math.floor((Math.random() * 10) + 1); return x; } ()}; console.log("Ok " + person.name + "! You are at " + person.posi

这是我的电梯程序。但我有错误

var person = {
  name: "Roman",
  position: 2,
  goal: 9
};

var lift = {
  getPosition : function() {
  var x = Math.floor((Math.random() * 10) + 1);
  return x; 
} ()};

console.log("Ok " + person.name + "! You are at " + person.position + " floor");
console.log("Lift is at " + lift.getPosition() + " floor");
错误lift.getPosition不是一个函数

如何修复它???

您的代码看起来已损坏:

var lift = {
  getPosition : function() {
  var x = Math.floor((Math.random() * 10) + 1);
  return x; 
} ()};
看来这应该是

var lift = {
  getPosition : function() {
    var x = Math.floor((Math.random() * 10) + 1);
    return x; 
  } 
};

声明getPosition时,为该属性分配了一个自调用匿名函数。(最后的
()
会自动调用它)

您可以删除它们
()
,并像调用“
lift.getPosition()
”一样调用该方法:

或者离开它们,只调用属性而不使用
()
lift.getPosition
”:

但每次使用它时都会返回相同的值,因为它只执行一次。这真的取决于你想要完成什么

function(){}
是一个匿名函数声明。但是
function(){}()
是一个匿名函数调用,这不是您想要的,因为现在
lift.getPosition
将只是一个整数,而不是一个函数。
var lift = {
  getPosition: function() {
      var x = Math.floor((Math.random() * 10) + 1);
        return x; 
  }()
};
var lift = {
    getPosition: function() {
        var x = Math.floor((Math.random() * 10) + 1);
        return x; 
    }
};

console.log("Lift is at " + lift.getPosition() + " floor");
var lift = {
    getPosition: function() {
        var x = Math.floor((Math.random() * 10) + 1);
        return x; 
    }()
};

console.log("Lift is at " + lift.getPosition + " floor");