Ao acompanhar a aula 3 do curso javascript avançado. Percebi que o código do vídeo tá diferente do que está na aula transcrita. E sem falar que o código gera está gerando o seguinte erro ao adicionar uma negociação: NegociacaoController.js:31 Uncaught TypeError: Cannot read property 'adiciona' of undefined at NegociacaoController.adiciona (NegociacaoController.js:31) at HTMLFormElement.onsubmit (index.html:16)
Segue abaixo os trechos do código: E o trecho que instancia o ProxyFactory
this._listaNegociacoes = ProxyFactory.create(
new ListaNegociacoes(),
['adiciona', 'esvazia'], model =>
this._negociacoesView.update(model));
this._negociacoesView = new NegociacoesView($('#negociacoesView'));
this._negociacoesView.update(this._listaNegociacoes);
A classe ProxyFactory
class ProxyFactory{
static create(objeto, props, acao){
new Proxy(objeto, {
get(target, prop, receiver) {
if(props.includes(prop) && typeof(target[prop]) == typeof(Function)) {
return function() {
console.log(`a propriedade "${prop}" foi interceptada`);
Reflect.apply(target[prop], target, arguments);
return acao(target);
}
}
return Reflect.get(target, prop, receiver);
}
});
}
}
O método adiciona
adiciona(event) {
event.preventDefault();
//console.log(this._inputData.value);
this._listaNegociacoes.adiciona(this._criaNegociacao());
// this._negociacoesView.update(this._listaNegociacoes);
this._mensagem.texto = 'Negociação adicionada com sucesso';
this._mensagemView.update(this._mensagem);
this._limpaFormulario();
//this._listaNegociacoes.negociacoes.length = 0;
//this._listaNegociacoes.negociacoes.push(this._criaNegociacao());
console.log(this._listaNegociacoes.negociacoes);
}