JavaScript: dostęp do zmiennych wewnątrz anonimowej funkcji z zewnątrz

Powiedz, że mam tę anonimową funkcję:

(function(window){

 var private = 'private msg';

 function sayit() {
   alert(private) // works
 }

 document.body.onclick = sayit; // works

})(window);

// private shouldn't be accessible here

Czy tak powinno się zachowywać JavaScript?

Oznacza to, że nie ma możliwości uzyskania dostępuprivate z dowolnego miejsca poza tą anonimową funkcją?

Jeśli tak, to czy można znaleźć jakiś hack, aby uzyskać dostępprivate z zewnątrz, pozostawiając kod taki, jaki jest?

questionAnswers(5)

yourAnswerToTheQuestion