Visibilidade dos atributos de um objeto Javascript

Olá pessoal!

Estou com dúvida em relação à acessibildiade dos atributos de um objeto após a inicialização do objeto. Por exemplo:

Objeto
`function Caixa() {

    var id,
	abertoEm,
	usuario,
	totalConta = 1000.00;


this.abertura = function(usuario){

	this.id = Date.now();
	this.abertoEm = new Date();
	this.usuario = usuario;

	return true;
}

this.saque = function(valor, usuario){
      return totalConta - valor;
}

}

module.exports = Caixa;`

---------------------------------------------------------------------

Utilizando o objeto
var Caixa = require(’./Caixa’);
var caixa = new Caixa();

---------------------------------------------------------------------
Neste momento se tento ver os metodos e atributos do objeto tenho o seguinte retorno:

> caixa { abertura: [Function], saque: [Function]}
---------------------------------------------------------------------

Porém logo após chamar a função ‘abertura’ passando os paremetros, as variaveis do objeto se tornam visíveis:

Chamando uma função
> caixa.abertura(1); { abertura: [Function], saque: [Function], id: '1452812532191' abertoEm: '14-01-16T21:01:12' usuario: '1' totalConta: '1000.00' }

Saida do console:

Saberiam explicar, o porque dos atributos fiquerem ‘acessiveis’ após a utilização de uma função do objeto ??