Вы можете использовать более javascriptous способ сделать это:
ите за нечеткое название поста, я не могу сформулировать правильное название на английском для этого поста.
Например у меня есть такой объект:
var APP = {
a : 1,
b : function(){
return this.a;
}
}
Таким образом, если я позвонюconsole.log ( APP.b() )
чемthis
будет ссылаться на приложение, и результат будет1
.
Но как подключиться к приложению из подобъекта? Пример:
var APP = {
a : 1,
b : function(){
return this.a;
},
c : {
c1: function(){
return APP.a;
}
}
}
console.log ( APP.c.c1() ) // 1
Этот пример работает, но плохая идея указывать прямо на приложение. Например:
APP2 = APP;
APP = null;
console.log ( APP2.b() ); // 1
console.log ( APP2.c.c1() ); // APP is undefined
UPD:
У меня есть половина решения: если я объявлю собственностьc
как метод:
c : function(){
var self = this;
return {
c1: function(){
return self.b();
},
c2: function(){}
}
}
Это будет работать, но я должен вызывать метод, а не свойство (слишком много скобок):
console.log( APP2.c().c1() )
вместоconsole.log( APP2.c.c1() )