Работает во всех браузерах, включая ИЕ старых версий
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="https://raw.github.com/devote/jsClasses/master/core.class.js"></script>
        <script type="text/javascript">
            var obj = new (Class({compact: true}, {
                name: {
                    privateValue: null,
                    set: function(value, self) {
                        alert( "Сработал сеттер: " + value );
                        self.privateValue = value;
                    },
                    get: function(self) {
                        alert( "Стработал геттер" );
                        return self.privateValue;
                    }
                }
            }));
            obj.name = "Hello World!";
            alert( "Текущее значение: " + obj.name );
            // смотрим какие в объекте есть свойства
            for(var key in obj) {
                alert( key );
            }
        </script>
    </head>
    <body>
    </body>
</html>