Estoy intentando crear un objeto UserDon e intentando generar los métodos get y set programáticamente (basado en el libro Pro Javascript de John Resig página 37) y estoy probando esto en Firefox 3.5Creando el método get/set dinámicamente en javascript
El problema es: en la función UserDon, "esto" se refiere al objeto ventana en lugar del objeto UserDon.
Así que después de llamar a var userdon = new UserDon (...) Obtuve los métodos setname y getname creados en el objeto window (también setage y getage).
¿Cómo puedo solucionar esto?
function UserDon(properties) {
for(var i in properties) {
(function(){
this[ "get" + i ] = function() {
return properties[i];
};
this[ "set" + i ] = function(val) {
properties[i] = val;
};
})();
}
}
var userdon = new UserDon({
name: "Bob",
age: 44
});
Buena pregunta si se trata de un ejercicio.De lo contrario, si no está haciendo ninguna operación adicional en getters/setters, es de esperar que simplemente use las propiedades públicas y renuncie a la sobrecarga del método. :) – deceze