这是我的升降机程序。但我有错误。
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不是函数。
我该如何解决?
答案 0 :(得分:4)
你的代码看起来很糟糕:
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;
}
};
答案 1 :(得分:1)
当您声明getPosition时,您为此属性分配了一个自调用的匿名函数。 (最后()
,自我调用它)
var lift = {
getPosition: function() {
var x = Math.floor((Math.random() * 10) + 1);
return x;
}()
};
您可以删除它们()
并像调用“lift.getPosition()
”一样调用该方法:
var lift = {
getPosition: function() {
var x = Math.floor((Math.random() * 10) + 1);
return x;
}
};
console.log("Lift is at " + lift.getPosition() + " floor");
或离开他们,只是在没有()
“lift.getPosition
”的情况下调用该媒体资源:
var lift = {
getPosition: function() {
var x = Math.floor((Math.random() * 10) + 1);
return x;
}()
};
console.log("Lift is at " + lift.getPosition + " floor");
但是每次使用它都会返回相同的值,因为它只执行一次。这实际上取决于你想要完成的事情。