JavaScript对象的对象中如何互相取值?

http://jsbin.com/qeleboyeme/1/edit?js,console

var a = {
  apple:{
    apple1:"ap1",
    apple2:"ap2"
  },
  banana:{
    banana1:"ba1",
    banana2:"ba2",
    //banana3:a.apple.apple1,
    banana4:this.banana1,
  },
  pear:function(){
    console.log(this.banana.banana1);
  }
};

console.log(a.banana.banana1);
console.log(a.banana.banana2);
console.log(a.banana.banana3);
console.log(a.banana.banana4);
a.pear();

//a.banana想取a.apple里面的值怎么办?

如题,a.banana想取a.apple里面的值怎么办?pear中的this指向的是a,banana4中的this指向的是global
如果把banana3那里的注释去掉会直接报错

阅读 5.3k
2 个回答
        var a = {
          apple:{
            apple1:"ap1",
            apple2:"ap2"
          },
          banana:{          
            banana1:"ba1",
            banana2:"ba2",
            banana4: function(){
                return a.apple.apple1;
            }
          },
          pear:function(){              
                console.log(this.banana.banana4());
          }
        }
        a.pear();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题