buenas @refreegrata,
lo que sucede en
metodo_2 dentro de
espacio es que se crea un closure. esto sucede por tres razones principales: porque hay una referencia a un objeto, dicha referencia ocurre dentro de un scope, y el elemento que hace referencia al objeto es devuelto o asignado a un contexto externo. javascript tiene un mecanismo de resolución de conflicto donde va buscando los identificadores (tokens) por un orden en el scope. en tu caso particular, javascript primero busca si
metodo_1 esta definido en el mismo scope (dentro de la función
metodo_2) y luego continua ascendiendo (dentro de la función
espacio). como esta definido en
espacio, entonces hace referencia a este. notese que las referencias se basan de acuerdo al contexto en que se definen y no en el contexto en que se invoca.
algunos artículos que te pueden ayudar,
http://robertnyman.com/2008/10/09/ex...-and-closures/,
http://jibbering.com/faq/notes/closures/.
nota: no he leido todos los mensajes por lo que no se muy bien que se ha discutido.