SCRIPT:
bgcolor = "VALOR INICIAL";
function getColorRGB() {
return bgcolor;
}
console.log('LLAMO FUNCION');
console.log(getColorRGB()); // LLAMAR FUNCION
$(function(){
console.log('ASIGNO VALOR');
bgcolor = $('label').css('background-color'); //ASIGNAR VALOR
console.log(bgcolor);
});
OUTPUT:
js.js:26 LLAMO FUNCION
js.js:27 VALOR INICIAL
js.js:31 ASIGNO VALOR
js.js:33 rgb(255, 0, 0)
Estas llamando la función antes de sacar el valor.
Por eso yo lo puse en botones, ya que si haces un alert o cualquier cosa antes de asignar el valor o te dará undefined o te dará un error.
Como lo solucionas?
O retrasas el output o haces antes el input.
Como haces eso?
Hacer antes el input sera mas complicado ya que necesitaras que jquery y el documento HTML cargue antes que tu output.
Por tanto retrasare el output:
bgcolor = "VALOR INICIAL";
function getColorRGB() {
return bgcolor;
}
setTimeout(function(){
console.log('LLAMO FUNCION');
console.log(getColorRGB()); // LLAMAR FUNCION
},500);
$(function(){
console.log('ASIGNO VALOR');
bgcolor = $('label').css('background-color'); //ASIGNAR VALOR
console.log(bgcolor);
});
Funcionara siempre y cuanto todo cargue antes de los 500ms.
Pero esto es un parche, lo mejor seria hacer tu alert despues de que cargue con $(function(){});
Ahi te lo puedes ingeniar.