如何在javascript中引用对象?我有以下代码:
// define nodes
var NodeA = new Object();
var NodeB = new Object();
NodeA = {
name: "A",
children: [
NodeB
]
}
NodeB = {
name: "B",
children: []
};
var test = NodeA.children[0].name;
// How can I make test = "A" ??? <----------------
alert(test);
我知道,如果在创建NodeA之前先创建NodeB,它将解决我的问题。
最佳答案
您可以使用Object.assign将属性分配给NodeB
,而不是将NodeB
设置为对全新对象的引用:
var NodeB = {};
var NodeA = {
name: "A",
children: [
NodeB
]
}
Object.assign( NodeB, {
name: "B",
children: []
} );
var test = NodeA.children[0].name;
alert(test);
请注意,要获得
Object.assign
支持的Internet Explorer,您需要使用Polyfill。您也可以只将属性分配给现有对象,而不是使用对象文字符号创建一个新的属性:
var NodeB = {};
var NodeA = {
name: "A",
children: [
NodeB
]
}
NodeB.name = "B";
NodeB.children = [];
var test = NodeA.children[0].name;
alert(test);