Código :
if (photo.selected) { photo.className = 'photo'; } else { photo.className = 'photo selected'; }
Este codigo cumple con las siguientes condiciones, es un if, y lo que hace el if es asignar un valor en algun lugar en este caso cambiar de clase, si se cumple y cambiar la misma variable pero con otro valor sino se cumple. Esto se puede escribir asi usando ? :
Código :
photo.className = (photo.selected) ? 'photo' : 'photo selected';
Como ven es mucho mas sencillo la idea es la siguiente:
Código :
(condicion ? valor1 : valor 2);
Si la condicion resulta en true se retorna el valor1 y si la condicion resulta en false se retorna el segundo valor. Muy util para cambiar classes en elementos html, asignar un background-color, color de texto. Entre otros aqui un ejemplo real de mi clase para fabricar checkboxes:
Código :
this.holder.className = (this.check) ? 'checkItem checked' : 'checkItem';
Tambien puede ser escrito asi, pero creo para aprendizaje la primera es mas clara:
Código :
this.holder.className = 'checkItem' + ((this.check) ? 'checked' : '');