我似乎无法弄清楚我的代码有什么问题,以便将loc
的值增加到2等。
var jeremy = {loc:1};
var move1 = function (car){
car.loc++;
};
console.log(move1(jeremy));

答案 0 :(得分:2)
你的move1函数不会返回任何内容。您尝试打印(console.log)其返回值。 你应该尝试打印" jeremy.loc"的价值。代替
答案 1 :(得分:0)
您忘记在函数中返回值。 在你的代码中,最后是jeremy.loc = 2,但是console.log函数没有打印任何内容,因为move1没有返回任何内容。 这是带有返回语法的代码:
var jeremy = {loc:1};
var move1 = function (car){
car.loc++;
return(car.loc);
};
console.log(move1(jeremy));

答案 2 :(得分:0)
move1()
不返回值,也不需要增加值,具体取决于您想要的值。
忽略console.log()
的使用您是想简单地增加值还是move1()
来返回值?
您现有的代码工作正常,因为它会增加值,而不返回它。但是,您打印的是函数的结果而不是更新的对象。只需调用move1()
即可更新您的对象,然后打印对象进行验证,如下所示。
同样,如果你想要的只是更新对象,则无需返回值。
var jeremy = {loc:1};
var move1 = function (car){
car.loc++;
};
move1(jeremy)
console.log(jeremy.loc);
如果你真的想要返回值,请增加值并返回它,类似于下面的内容。
var jeremy = {loc:1};
var move1 = function (car){
return ++car.loc; // returns 2 and increments loc to 2.
};
console.log(move1(jeremy)); // returns 2 , value after increment
console.log(jeremy.loc); // returns 2 as increment has happened.
请注意上一个示例我将Car.loc++
更改为++Car.loc
,但Car.loc += 1
也可以。区别在于return Car.loc++
返回结果之前它会增加,如下所示。
是的,var x = Car.loc++; return x;
也有效但我觉得此时要强调++x
和x++
在此处查看有关该主题的更多信息Arithmetic operators - Increment++
var jeremy = {loc:1};
var move1 = function (car){
return car.loc++; // returns 1 and not 2 but will increment loc to 2.
};
console.log(move1(jeremy)); // returns 1 , value before increment
console.log(jeremy.loc); // returns 2 as increment has happened.
答案 3 :(得分:0)
您的函数需要返回值,您可以使用++ car.loc而不是car.loc ++。 ++ car.loc将在return语句之前递增变量。编写car.loc ++会在返回后增加变量。快乐的编码!
var jeremy = {loc:1};
var move1 = function (car){
return ++car.loc;
};
console.log(move1(jeremy));
答案 4 :(得分:-3)
var jeremy = {loc:1};
var move1 = function (car){
car.loc++;
return car;
};
console.log(move1(jeremy));