新手Javascript问题 - ReferenceError:未定义对象

时间:2015-07-03 17:47:03

标签: javascript

Ful披露 - 我是一个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没有定义和类似。我在网上读到,当您将对象作为函数参数传递时,您将传递引用,并且该函数中所做的任何更改都应该影响原始对象。另外,我不确定我是否应该在这里使用原型命令。

非常感谢。在这里指出我正确的方向应该解决我的其余任务的问题!

1 个答案:

答案 0 :(得分:0)

方法 private void ButtonSelectAll_Click(object sender, RoutedEventArgs e) { MyTextBox.Select(0, MyTextBox.Text.Length); string selectedText = MyTextBox.SelectedText; DataPackage myPackage = new DataPackage(); myPackage.SetText(selectedText); Clipboard.SetContent(myPackage); } 无法看到函数onePlus,它只是不存在。它属于setPropertiesOnObjLiteral。变量和方法具有有效范围,不能使用它们的范围。

正确使用

object

您还需要返回要在

之外使用的方法的结果
obj.i = obj.onePlus(obj.i); // "onePlus" belongs to obj

要保持onePlus: function(i) { return i+1; } 代码的原样,您必须移动setPropertiesOnObjLiteral

onePlus