Этот подход можно назвать инкапсуляцией на основе замыканий, что позволяет получить доступ ко всем внешним данным, но при этом защищая свои.
http://habrahabr.ru/blogs/webdev/38642/
http://javascript.ru/basic/closure
самые простые примеры:
<script type="text/javascript">
(function(i) {
alert(i*i);
})(10);
</script>
<script type="text/javascript">
var i = (function(i) {return i*i;});
alert(i(10))
</script>
<script type="text/javascript">
window.onload = function(){
var array = document.getElementsByTagName('div');
for(var i=0; i<array.length; i++) {
(function(i) {
array[i].onclick = function() {
alert(i);
}
})(i);
}
};
</script>
<div>Click1</div>
<div>Click2</div>