2016-11-18 2 views
0

Как я могу ссылаться на переменные родительских объектов из под-объекта?Javascript/Typcript это относится к неправильной области

«Это» в под-объекте здесь относится к самому под-объекту. Однако мне нужно ссылаться на родительский объект. Как я могу это сделать?

export class Parent { 

    load() { 
      this.options = { 
       this. //Problem here! this refers to options object and not 
        // parent 
      } 
    } 
} 

Приведенный выше код очень грубый. Не значит, что это очень важно.

+0

[это работает] (https://www.typescriptlang.org/play/#src=class%20Parent%20%7B% 0A% 20% 20% 20% 20private% 20options% 3A% 20any% 3B% 0A% 20% 20% 20% 20private% 20x% 3A% 20number% 20% 3D% 203% 3B% 0A% 0A% 20% 20% 20% 20load()% 20% 7B% 0A% 20% 20% 20% 20% 20% 20% 20% 20% 20this.options% 3D% 20% 7B% 0A% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20x% 3A% 20this.x% 0A% 20% 20% 20% 20% 20% 20% 20% 20% 7D% 0A% 20% 20% 20% 20% 7D% 0A% 7D) штраф. Возможно, вы можете более подробно объяснить свою проблему. –

ответ

-1

это ключевое слово работает иначе, чем другие языки. он содержит значение объекта, который вызывает код. Поскольку объект options вызвал его, то есть это «этот» объект.

var that = this; 

Вы можете поместить это в свой родительский конструктор для создания ссылки на родительский объект.

Я предлагаю вам взглянуть на этот блог, очень полезно: http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/