Função aninhada dentro do objeto literal

se em um objeto literal eu tentar referenciar uma função usando "this" dentro de uma propriedade / função aninhada, isso não funcionará. Por quê? Uma propriedade aninhada tem seu próprio escopo?

Por exemplo, eu quero chamar f1 de dentro do d.f2:

var object = {    

  a: "Var a",
  b: "Var b",
  c: "Var c",

  f1: function() {
    alert("This is f1");
  },

  d: {
      f2: function() {
       this.f1();
    }
  },

  e: {
      f3: function() {
        alert("This is f3");
     }
  }
}

object.f1 (); // Trabalhos
object.d.f2 (); // Não funciona. object.e.f3 (); // Trabalhos

Obrigado Andrea.

questionAnswers(2)

yourAnswerToTheQuestion