【问题标题】:Traversing between parent / child properties in nested JSON objects in JavaScript在 JavaScript 中嵌套 JSON 对象的父/子属性之间遍历
【发布时间】:2016-09-15 02:35:03
【问题描述】:

我有一个 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
    }
   }  
}

我想从nestedJsongetName 访问name。可能吗? json中是否有父子遍历机制/方式,javascript中是否有嵌套json对象?

提前致谢。

【问题讨论】:

标签: javascript json


【解决方案1】:

这是一个 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/

【讨论】:

  • 不错的方法。有一件事,nested.getName()里面的this应该是getName()左侧的任何东西,在这种情况下,它是nested对象,而不是window
  • 感谢@Mike 的回答,也感谢您提供的链接,我会阅读的。但是改变对象结构不在我的手中。我没写:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多