从函数访问同级对象

时间:2017-07-09 20:15:24

标签: javascript ecmascript-6

我正在尝试访问一个对象(childObject1),它是函数(childObject2)的兄弟对象。虽然情况确实如此,但似乎该功能无法访问childObject1,但它可以访问其中的字段,例如grandChildObject1

parentObject: {
    childObject1: "Child Object 1",
    childObject2: function() {
          var grandChildObject1 = "Grandchild Object 1";
          console.log(childObject1);
          console.log(grandChildObject1)
    }
}

第一个日志打印:

  

未定义

第二个日志打印:

  

孙子对象1

如果他们是兄弟姐妹,为什么该功能无法访问childObject1的值?

3 个答案:

答案 0 :(得分:2)

您必须使用this



var parentObject = {
    childObject1: "Child Object 1",
    childObject2: function() {
          var grandChildObject1 = "Grandchild Object 1";
          console.log(this.childObject1);
          console.log(grandChildObject1);
    }
};

parentObject.childObject2();




答案 1 :(得分:1)

您需要使用this。改变

console.log(childObject1);

console.log(this.childObject1);

答案 2 :(得分:0)

就像任何其他静态方法一样,你必须通过父对象,例如从childObject2访问它时的parentObject1.childObject1。没有静态对象的实例,因此它们不是真正的逻辑兄弟。