Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

Pregunta sobre la variable evento

  • Pregunta sobre la variable -evento-

He notado que no se puede declarar como var e igualarlo al evento .pageX o .pageY, ya que, quería declararlo como global para usar la variable como coordenadas en todas las funciones y no tener que crear una función para vincular la variable evento al evento propiamente dicho del .pageX o .pageY.

Mis preguntas son las siguientes :

*¿ La palabra evento es una variable ya establecida en JavaScript ? *De ser así ¿No se puede usar como variable local? *Si no es así ¿Por qué se usa la palabra evento, después el punto y finalmente el evento? ¿Cómo es que se le puede atribuir un evento como .pageX a la palabra evento sin declararla con anterioridad?

5 respuestas

Hola tocayo, no estoy muy seguro de que sea una palabra ya reservada de JS, o que sea una variable establecida (como dices), lo que pienso es que cuando estás declarando una función y en los parámetros de la misma le escribes "evento", la estás declarando como parámetro y le estás asignando un valor, por tanto ya la tendrías declarada.

Por otro lado, cuando ya tienes una variable o parámetro declarado, puedes vincularle a otro parámetro, variable o función de los que ya tienes o los que tenga JS. Ejemplo:

        function dibujarCirculo(evento) {

            if (puedoDibujar) {
                var x = evento.pageX - pantalla.offsetLeft;
                var y = evento.pageY - pantalla.offsetTop;
                pincel.fillStyle = color[colorActual];
                pincel.beginPath();
                pincel.arc(x, y, 5, 0, 2 * 3.14);
                pincel.fill();
                console.log(x + "," + y);
            }

        }

Aquí en la declaración de la función ya también estás declarando a evento como parámetro, pero cuando estás declarando la variable x, dentro de la función, le estás atribuyendo a esta (x) el valor del parámetro "evento" el cual estás linkeando (o vinculando) a una función de JS que es "pageX".

Ese es mi parecer, por lo que me dice la lógica, si no es que alguien me corrija e ilustre.

Saludos tocayo, creo que no entendiste mi duda por completo. con lo que me di cuenta es que como yo quería evitar hacer una función para almacenar las coordenadas del puntero con los eventos .pageY y .pageX decidí declarar una variable var llamada evento al inicio de mi código para poder usarla en las funciones que se necesiten las coordenadas y no estar usando los eventos nuevamente por cada función que la necesite. Al guardarlo y refrescar la página no funcionaba y en la consola me indicaba que no se podía leer las propiedades indefinidas del .pageX o .pageY

var puedoDibujar = false;    
    var x;
    var y;
    var colorCirculo="blue";
    var evento;

    function obtenerCoordenadas ()
    {
         x = evento.pageX - pantalla.offsetLeft;
         y = evento.pageY - pantalla.offsetTop;

        if (delimitarAreaDeDibujo())
        {
            dibujarCirculo(x,y);
        }
    }

como se ve en este código declaré la variable 'var evento' afuera de la función para poder usarla en cualquier función pero me sale error. concluí que solo se puede declarar la variable evento dentro de la función para poder asociarla a los eventos ya sea .pageY o .pageX

Hola Carlos, tengo la misma duda, ya que cuando usamos "evento" como parámetro al crear la función, no se utiliza ningún dato adicional al llamar a la función.

En cuanto al código que compartiste, el error puede estar relacionado con la forma de declarar las variables, al declarar la una variable siempre hay que asignarle un valor, en tu caso algunas variables como "x", "y" y evento no tienen un valor asignado.

Espero que te sea de ayuda, saludos

Saludos tocayo y María Cristina, resulta que "evento", en este caso no está siendo declarada como variable, sino como parámetro de la función creada, por tanto, si la declaras como variable, la tienes que declarar global.

En dicho caso, les recomiendo declarar una variable global y luego pasarle los datos almacenados en "evento".

Espero que les sirva mi aporte y si les gusta, marcarla como "Solución".

-Hola maría, creo que no es necesario asignarle un valor ya que JavaScript le asigna uno por defecto si no me equivoco

-Hola tocayo eso es lo que hice al final, pero por que solo se usa como parámetro, me estaba preguntando si se podía declarar una variable del tipo evento ya que considero que ese es el error. Al declarar una variable como var me parece que no está implícito las variables o parámetros tipo evento o algo así, bueno eso es lo que más lejos me llevó la lógica.

Gracias por sus comentarios :)