我有一个json对象,其属性是嵌套的json。嵌套的json具有作为属性的函数。我想从内部json中的该函数访问该外部json中的属性。
让我用虚拟代码解释,
{
name: "Barry Allen",
getName: function () {
return this.name; //this is returning "Barry Allen", which is fine
},
nestedJson: {
getName: function () {
//here I want something like return this.parent.name
}
}
}
我想从name
的{{1}}访问getName
。可能吗?是否有任何父子遍历json中的机制/方式和javascript中的嵌套json对象?
提前致谢。
答案 0 :(得分:4)
这是一个POJO(普通的旧JavaScript对象),而不是JSON。
this
内nestedJson.getName()
的上下文与第一级this
内.getName()
的上下文不同。由于此对象已经在此函数存在的时间定义,因此您可以将对象本身用作this
的替代。
var person = {
name: "Some Guy",
getName: function () {
return this.name;
},
nested: {
getName: function () {
return person.name;
}
}
};
var try1 = person.getName();
var try2 = person.nested.getName();
console.log('try1', try1);
console.log('try2', try2);
话虽这么说,我会把它变成另一种类型的对象。阅读:http://www.phpied.com/3-ways-to-define-a-javascript-class/