¿Llamando al método dentro de otro método en javascript?

Tengo un espacio de nombres de JavaScript decir

A={

  CA: function() {
    this.B();
  },
  B: function() {
    var test='test';
    var result='t1';

    C: function() {
      this.test='test1';
      .....
      .....
      return 'test1';    
    }

   result=this.C();  
   return result; 
  }
}

Ahora, cuando estoy ejecutando dicho código, está dando ese TypeError: this.C no es una función. ¿Puede alguien decirme por qué es así? Sé que es algo relacionado con el alcance léxico, pero no puedo entender esto.

Respuestas a la pregunta(4)

Su respuesta a la pregunta