Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

A respeito da classe Array

Ao programar defensivamente, em vez de devolvermos uma cópia do nosso array através do método concat(), poderíamos fazer isso usando o construtor da classe Array diretamente?

get negociacoes() {

        return [].concat(this._negociacoes);
}

// ou

get negociacoes() {

        return new Array(this._negociacoes);
}

Há alguma desvantagem em fazer isso dessa forma?

1 resposta
solução!

Oi, Aylon, tudo bem?

A ideia de oferecer uma cópia a quem queira ler a lista de array é para que a lista original se mantenham inalterada, assim, a protegendo. Mas caso deseje alterar os valores da lista, você precisará utilizar os métodos da classe, porque em operações de escrita apenas eles terão acesso ao array original, encapsulado pela classe.

Nesse caso, o constructor New Array tem exato mesmo valor que as colchetes vazios [], porém com a sintaxe mais reduzida.

Para saber mais: http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.1