新手Javascript问题-引用错误:未定义对象

新手Javascript问题-引用错误:未定义对象,javascript,Javascript,我是一个Javascript新手,刚刚参加了一个编码训练营。作为我们培训的一部分,我遇到了以下问题,这可能很简单,但我仍然遇到了一个错误 以下是我迄今为止的代码,按照说明: 在properties.js中: function setPropertiesOnObjLiteral(obj) { obj.x = 7; obj.y = '8'; obj.i = onePlus(obj.i); } 在propertiesSpec.js中: var object = { x: 3,

我是一个Javascript新手,刚刚参加了一个编码训练营。作为我们培训的一部分,我遇到了以下问题,这可能很简单,但我仍然遇到了一个错误

以下是我迄今为止的代码,按照说明:

在properties.js中:

function setPropertiesOnObjLiteral(obj) {
  obj.x = 7;
  obj.y = '8';
  obj.i = onePlus(obj.i);
}
在propertiesSpec.js中:

var object  = {
  x: 3,
  y: '2',
  onePlus: function(i) {
    i = i+1;
  }
};

setPropertiesOnObjLiteral(object);
我这里有很多错误,说onePlus没有定义和类似。我在网上读到,当你将一个对象作为函数参数传递时,你就是在传递一个引用,并且对函数所做的任何更改都会影响原始对象。另外,我不确定我是否应该在这里使用prototype命令

非常感谢。在这里给我指出正确的方向应该可以解决我在剩下的作业中的问题

函数onePlus对于方法SetPropertiesNobjLiteral不可见,只是它不存在。它属于对象。变量和方法有一个有效的作用域,在作用域之外不能使用它们

正确的用法是

obj.i = obj.onePlus(obj.i); // "onePlus" belongs to obj
您还需要从要在外部使用的方法返回结果

onePlus: function(i) {
    return i+1;
}
要保持SetPropertiesNojLiteral代码不变,必须移动onePlus

var object = {
  x: 3,
  y: '2'
};

function onePlus(i) {
    return i+1;
}