Além do nosso amigo do exemplo anterior, no JavaScript temos o loop
for-in
que usamos pra iterar em objetos. Uma coisa bacana de se fazer e que
pode evitar que algo que você não queira aconteça, é usar o método hasOwnProperty(). Esse método simplesmente vai filtrar apenas as propriedades do objeto em si, excluindo as propriedades herdadas pelo prototype.
Um exemplo rápido:
- var burger = {
- queijo: 'cheddar',
- pao: 'integral',
- hamburguer: 'picanha',
- molho: 'barbecue'
- };
Aí em uma parte obscura, aparece algo que adiciona uma propriedade a todos os objetos.
- if(!Object.prototype.feijao) {
- Object.prototype.feijao = 'preto';
- }
O que aconteceu acima foi que verificamos se existe a propriedade da coisa do JavaScript, nosso objeto
feijao em Object e, caso ela não exista definimos ela com o valor preto. Aí que está o negócio burger, já herda a propriedade feijao via prototype.
Com isso, para evitarmos que
feijao apareça quando listarmos as propriedades de burger (até porque feijão, na minha opinião, não combina muito com hamburguer), fazemos o seguinte:
- for(var i in burger) {
- if(burger.hasOwnProperty(i)) {
- console.log(i + ' => ' + burger[i]);
- }
- }
- // Resultará no seguinte:
- // queijo => cheddar
- // pao => integral
- // hamburguer => picanha
- // molho => barbecue
Do contrário, caso não fizéssemos essa verificação, teríamos algo assim:
- for(var i in burger) {
- console.log(i + ' => ' + burger[i]);
- }
- // Resultará no seguinte:
- // queijo => cheddar
- // pao => integral
- // hamburguer => picanha
- // molho => barbecue
- // feijao => preto
Era isso! Dicas rápidas sobre a linguagem, que para alguns podem ser
básicas, mas que muita gente ainda pode não conhecer e, que podem evitar
alguns problemas no futuro.