Ошибка в листинге - привилегированный метод. Джон Рейсиг 
		
		
		
		Добрый день, JavaScript Developer-ы ! 
	Читаю книгу Д. Рейсига - "JavaScript. Профессиональные приемы программирования" [2008]. Остановился на привилегированных методах, листинг 2.25 ( Пример динамически генерируемых методов при создании нового экземпляра объекта ). Вот собственно код: 
function User(properties) {
        
        for (var i in properties) {
        
            (function(){
            
                this["get" + i] = function() {
                    return properties[i];
                }
                
                this["set" + i] = function(val) {
                    properties[i] = val;
                }
            })();
        }        
    }
    
var user = new User({
    name : "hat_tab",
    age : 100500 
});
    
alert(user.getname());
В результате, у объекта User нет такого метода getname(). Если сделать без "замыкания", то такой метод есть, правда значение его 100500. Помогите разобраться где ошибка.  | 
	
		
 
function User(properties) {
		var that = this;
        for (var i in properties) {
         
            (function(i){
             
                that["get" + i] = function() {
                    return properties[i];
                }
                 
                that["set" + i] = function(val) {
                    properties[i] = val;
                }
            })(i);
        }       
    }
     
var user = new User({
    name : "hat_tab",
    age : 100500
});
     
alert(user.getname());
у внутренней функции свой this.  | 
	
		
 Riim, спасибо! 
	 | 
| Часовой пояс GMT +3, время: 11:22. |