Работает во всех браузерах, включая ИЕ старых версий
<!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>