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没有定义和类似。我在网上读到,当您将对象作为函数参数传递时,您将传递引用,并且该函数中所做的任何更改都应该影响原始对象。另外,我不确定我是否应该在这里使用原型命令。
非常感谢。在这里指出我正确的方向应该解决我的其余任务的问题!
答案 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