[英]Javascript Nesting and Recalling Objects
I know I can nest objects in objects and recall to them easily example: 我知道我可以将对象嵌套在对象中并轻松地调用它们,例如:
var ex1 = {
data1: 1,
dataOb: {
data1: 2,
data2: ex1.data1 + ex1.dataO.data1,
}
}
And I can do console.log(ex1.dataO.data1)
but I can't recall from dataOb
to ex1.data1
example: data2: ex1.data1 + dataOb.data1
doesn't work, so my question is it possible to recall from DataOb to parental object ex1 ? 而且我可以做
console.log(ex1.dataO.data1)
但是我无法从dataOb
调用到ex1.data1
示例: data2: ex1.data1 + dataOb.data1
不起作用,所以我的问题是是否可以调用从DataOb到父母对象ex1?
No. At the time that you're defining data2
, you're still in the middle of defining ex1
. 否。在定义
data2
,您仍在定义ex1
的中间。 That is, it doesn't really exist yet. 也就是说,它实际上还不存在 。 You're trying to access it before you've even finished defining it.
您甚至在完成定义之前就尝试访问它。
If I understand you question rightly... do you want to use ex1.data1
in the same sentence you're creating the whole object? 如果我了解您的问题是正确的...您是否要在创建整个对象的同一句子中使用
ex1.data1
?
This isn't ever possible! 这是不可能的!
You want to access to a reference that hasn't been created yet. 您要访问尚未创建的引用。
It's like doing this: 就像这样:
var a = a + 1;
How do you set the value of a
plus 1 if a
isn't declared already?! 如何设置的值
a
加1,如果a
尚未宣布?
You can do something like this: 您可以执行以下操作:
var ex1 = {
data1: 1,
dataOb: {
data1: 2,
data2: 4
},
getSum: function () {
var sum = 0;
for ( var i = 0; i < arguments.length; i++ ) {
sum += arguments[i];
}
return sum;
}
};
console.log(ex1.getSum(ex1.data1, ex1.dataOb.data1)); // should log 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.