Criando a classe ProxyFactory
, descobri que há algum tipo de bug, onde a classe normal é executada normalmente, mas a classe produzida com ProxyFactory
sempre considera a propriedade _texto_
como sendo igual a true
(um booleano), mesmo que seja passada uma string para ele. O que pode estar causando esse problema?
Classe Mensagem:
class Mensagem{
constructor(texto=''){
this._texto = texto;
}
get texto(){
return this._texto;
}
set texto(texto){
this._texto = texto;
return this;
}
}
Classe ProxyFactory:
class ProxyFactory{
static create(objeto, props, acao){
return new Proxy(new ListaNegociacoes(), {
get(target, prop, receiver){
if(props.includes(prop) && (typeof(target[prop]) == typeof(Function))){
return function(){
Reflect.apply(target[prop], target, arguments);
return acao(target);
};
}
return Reflect.set(target, prop, receiver);
},
set(target, value, prop, receiver){
Reflect.set(target, value, prop, receiver);
acao(target);
}
});
}
}
Forma que a classe está sendo instanciada no Controller
:
this._mensagemView = new MensagemView($("#mensagemView"));
this._mensagem = ProxyFactory.create(
new Mensagem(),
['texto'],
(model) => this._mensagemView.update(model)
);
Desde já agradeço.