Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

privateUserJava

Uso de atribuição dupla com ' = ' , como funciona ?'

Recommended Posts

Olá pessoal,

 

Bom como o topico sugere, gostaria de saber como funciona a seguinte linha de código, que encontrei analisando o source code do Slick.Grid :

 

var m = columns = $.extend({}, columnDefaults, columns);

 

a questão é : m é o que ? ( sei que é uma variavel hehe ),

 

o valor de comuns, ou o valor do $.extend() ?

 

Obrigado desde já pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso ai é um antipattern, e é desencorajado de usar.

 

má prática de programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal bruno,

 

Onde consigo, informação sobre esse ant-pattern?

 

tipo, se ele é um ant-pattern deve existir a forma correta de faze-lo ....

 

 

gostaria de ver um exemplo( ou um link com exemplos ) ,

 

quero entender o que esta acontecendo nesse trecho de codigo que postei,

 

principalmente pra saber o que esta acontecendo em codigos de terceiros...

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

oque está acontecendo, levando em conta que o código é processado da direita para a esquerda.

var m = columns[i] = $.extend({}, columnDefaults, columns[i]);

 

-> Chame a função $.extend em cima dos 3 objetos: {}, columnDefaults e columns

A única coisa que essa função faz, é um merge desses objetos. Matendo prioridade para o último objeto.

 

-> Então, se columns tiver algum valor conflitante com columnDefaults, o valor de columns, vai prevalecer.

Feito isso, columns ali da esquerda, recebe o valor retornado por $.extend

 

-> E por sua vez, m recebe o mesmo valor.

 

 

Ai o problema, é a falta de legibilidade do código, a duplicação de uma variável na memória, e a sobrescrita da variavel columns, oque contribui para piorar a manutenção do código e tornar tudo ainda mais confuso.

 

 

Visto isso, não siga oque esse cara fez. Está ruim, bem ruim.

 

 

Sobre "anti-patterns", leia alguns livros de js, como o Good Parts

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.