JavaScript `this` em objetos em objetos?

Desculpe o título do post difuso, não consigo formular o nome correto em inglês para este pos

Por exemplo, eu tenho esse objeto:

var APP = {
    a : 1,
    b : function(){
        return this.a;
    }
}

Dessa forma, se eu ligar paraconsole.log ( APP.b() ) do quethis fará referência à APP e o resultado será1.

Mas como se conectar ao APP a partir do subobjeto? Exemplo

var APP = {
    a : 1,
    b : function(){
        return this.a;
    },
    c : {
        c1: function(){
             return APP.a;
        }
    }
}

console.log ( APP.c.c1() ) // 1

Este exemplo funciona, mas é uma má idéia apontar diretamente para o APP. Por exemplo

APP2 = APP;
APP = null;
console.log ( APP2.b() );  // 1
console.log ( APP2.c.c1() ); // APP is undefined

UPD:

Eu tenho meia decisão: se eu declarar propriedadec como um método:

c : function(){
    var self = this;
    return {
        c1: function(){
            return self.b();
        },
        c2: function(){}
    }
}

Funcionará, mas devo chamar um método, mas não propriedade (colchetes demais):

console.log( APP2.c().c1() ) ao invés deconsole.log( APP2.c.c1() )

questionAnswers(3)

yourAnswerToTheQuestion