遍历JavaScript中嵌套JSON对象中的父/子属性

时间:2016-05-18 14:23:26

标签: javascript json

我有一个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对象?

提前致谢。

1 个答案:

答案 0 :(得分:4)

这是一个POJO(普通的旧JavaScript对象),而不是JSON。

thisnestedJson.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/