[Resuelto] [Pregunta]: Algo está saliendo mal con document ready (Parte 2)

Iniciado por Leguim, 16 Septiembre 2019, 07:22 AM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Buenas noches,
en un tema pasado había explicado que si ponía funciones dentro de un $(document).ready me devolvía errores de que dichas funciones no estaban creadas (undefined), El problema nuevo por el que estoy pasando es que me pasa lo siguiente:

Código javascript normal
Código (javascript) [Seleccionar]

var valor_extra = 3;

function Sumar(a, b)
{
    var result = a + b + valor_extra;
    return result;
}


Implementando Jquery
Código (javascript) [Seleccionar]

$(document).ready(function(){
    var valor_extra = 3;
});

function Sumar(a, b)
{
    var result = a + b + valor_extra;
    return result;
}


Este código me dirá que hay un error: "Undefined valor_extra" que la variable valor_extra no está creada al momento de hacer uso de Sumar(x, y);

engel lex

esto es un asunto de alcance de funciones (llamado scope)

todo lo que hagas con la palabra clave "function" es una funcion y recuerda que todo lo que pasa en las funciones queda en las funciones, no sale... para que salga o la pasas como variable a otra funcion o la declaras como una variable gobal

ejemplo

function cosa1(){
     var result = 10;
     return result;
}
function cosa2(){
     return result;
}

cosa1();
cosa2();


en este caso result solo existe en cosa1, porque asi fue declarado, cosa 2 generará error porque esa variable no existe desde su punto de vista...

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Leguim

Cita de: engel lex en 16 Septiembre 2019, 07:44 AM
esto es un asunto de alcance de funciones (llamado scope)

todo lo que hagas con la palabra clave "function" es una funcion y recuerda que todo lo que pasa en las funciones queda en las funciones, no sale... para que salga o la pasas como variable a otra funcion o la declaras como una variable gobal

ejemplo

function cosa1(){
     var result = 10;
     return result;
}
function cosa2(){
     return result;
}

cosa1();
cosa2();


en este caso result solo existe en cosa1, porque asi fue declarado, cosa 2 generará error porque esa variable no existe desde su punto de vista...



Mal interprete totalmente todo, yo pensaba que document.ready digamos no era una función de esa manera, digamos... pensaba (si ya se que es una función) pero lo que hacia era una vez que estaba cargado creaba la variable o ejecutaba lo que tenga a dentro (que en parte es así) pero no lo veía como una función que cerrabas algo ahí y no lo podías usar en otro lado en este caso función.. Pero ya entendí mejor gracias!

EdePC

Saludos,

- Las siguientes instrucciones son completamente equivalentes:

Código (javascript) [Seleccionar]
// jQuery normal
$(document).ready(function() {
    console.log( "DOM ready!" );
});

// jQuery ShortHand, más utilizado
$(function() {
    console.log( "DOM ready!" );
});

// javascript clásico
document.addEventListener( "DOMContentLoaded", function() {
    console.log( "DOM ready!" );
});

@XSStringManolo

https://api.jquery.com/ready/

https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Funciones

https://www.w3schools.com/js/js_function_definition.asp

https://www.amazon.es/javascript-Programmers-Reference-Wrox-Programmer/dp/0470344725

El problema de los libros y tutoriales populares de javascript es que usan javascript como si fuese un complemento de HTML o como si javascript fuese un CSS más complejo.
javascript te permite hacer applicaciones web. Programas que tienes en el escritorio como por ejemplo notepad, winzip, winrar... Puedes hacerlos con javascript.

Leguim

Gracias a todos!

No va al caso pero me esta dando un error grave cuando quiero publicar un nuevo tema "Una regla de seguridad ha sido aplicada"

engel lex

Cita de: MiguelCanellas en 17 Septiembre 2019, 00:37 AM
Gracias a todos!

No va al caso pero me esta dando un error grave cuando quiero publicar un nuevo tema "Una regla de seguridad ha sido aplicada"

aqui wen el foro?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.


@XSStringManolo