为什么下面的简单方法在Javascript中返回NaN(不是数字)?

为什么下面的简单方法在Javascript中返回NaN(不是数字)?,javascript,google-chrome,object,data-structures,methods,Javascript,Google Chrome,Object,Data Structures,Methods,上面显示的是我在ChromeJS控制台上运行的简单JS代码。但是当我访问在对象名“obj”中创建的简单add方法时,它返回NaN,如下所示。有人能告诉我为什么会发生这种情况以及如何解决它吗?因为第一个参数是1+2=3,第二个参数是未定义的 3+未定义=NaN 请尝试console.log: 函数addx,y{ 控制台。logx,y,x+y 返回x+y } 控制台logadd1+2 控制台logadd1,2 因为您应该传递obj.add1,2而不是1+2,所以您没有正确地传递参数。在您的情况下,y

上面显示的是我在ChromeJS控制台上运行的简单JS代码。但是当我访问在对象名“obj”中创建的简单add方法时,它返回NaN,如下所示。有人能告诉我为什么会发生这种情况以及如何解决它吗?

因为第一个参数是1+2=3,第二个参数是未定义的

3+未定义=NaN

请尝试console.log:

函数addx,y{ 控制台。logx,y,x+y 返回x+y } 控制台logadd1+2 控制台logadd1,2
因为您应该传递obj.add1,2而不是1+2,所以您没有正确地传递参数。在您的情况下,y永远不会传递。

您没有传递第二个参数,因此javascript将其解释为未定义

var obj = {
  add: function(x, y) {
    return x + y;
  }
}

obj.add(1, 2) // 1 + 2 = 3
obj.add(1+2) // 1+2 + undefined = 3 + undefined = NaN

因为你没有通过第二个论点

obj.add1+2与obj.add3相同,未定义

如果你像这样通过,它会起作用的-

obj.add1,2


请提供实际代码,而不是屏幕快照3+未定义的代码。你是说obj.add1,2吗?