Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Dudas Javascript

Estas en el tema de Dudas Javascript en el foro de Javascript en Foros del Web. Buenas compañeros, me van a disculpar pero quiero terminar de entender algunos conceptos y ojala me puedan ayudar; no me da pena preguntar porque soy ...

  #1 (permalink)  
Antiguo 23/05/2014, 05:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Pregunta Dudas Javascript

Buenas compañeros, me van a disculpar pero quiero terminar de entender algunos conceptos y ojala me puedan ayudar; no me da pena preguntar porque soy novato :)


1) Variables globales : el modelo de eventos favorece las variables globales ?

He notado que es practica comun (mucho mas que en otros lenguajes) mantener variables globales entre funciones, asi por ejemplo las funciones inicializadoras llamadas por onload() crean una cantidad de variables globales.

El objeto window es de alcance global tambien.


2) Jerarquia de objetos ?

Entiendo que no hay clases como tal sino prototipos, entonces la relacion entre window, window.screen, window.document es de herencia del prototipos ?


Gracias desde ya
__________________
Salu2!
  #2 (permalink)  
Antiguo 23/05/2014, 06:27
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Buenas!!

Las variables locales totalmente desaconsejado, en js o en cualquier otro. Usar parámetros a diestro y siniestro. Bien es cierto que con los eventos da el "tic" de usarlas, pero no.

En cuanto a la jerarquia de objetos, igual estoy en un error (también ando de "novatada"), pero es cosa del DOM que se genera con el HTML.

Otra cosa es que para hacer POO con Javascript, se use esto de los prototipos para emular una clase.

Precisamente sobre el window.onload voy a preguntar, y aprovecho este hilo.

tengo un script principal con un window.onload que llama a unas funciones que están en otro script. Y No rula. No rula porque esas funciones acceden a elementos HTML con el consabido getElementByID.

Si pongo todo dentro del .onload, bien, funciona. Pero se me va a quedar un script de taintas miles lineas como siga así.

Yo pensaba que al poner llamadas a funciones de otros scripts dentro de .onload, pues ya estabá cargada la página y por tanto se puede referenciar los elementos HTML.

Obviamente llamo a los scripts en el head. Primero al principal, y después a los otros.

¿Que puede ser?
  #3 (permalink)  
Antiguo 23/05/2014, 07:21
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Se me olvidó poner el código:

En el HTML:

<head>
.....
<script src="..../scriptprincipal.js"></script>
<script src="..../oyente.js"></script>
<script src="..../calendario.js"></script>
...
</head>

En el scriptprincipal:

window.onload=function() {
calendario();
oyente();
}

Y en el script caldendario.js

function calendario() {
.....
}
  #4 (permalink)  
Antiguo 23/05/2014, 07:56
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Dudas Javascript

@mnocturno : como dices el DOM debe estar cargado para que tenga sentido inicializar funciones.

Como dicen aca "window.onload is rarely used, because no one wants to wait until all resources load, especially for large pictures." , hecho asi.. esas funciones seran las ultimas en ser llamadas (despues de cargar hasta la ultima imagen)



Me parecio interesante el articulo:

http://javascript.info/tutorial/onlo...mcontentloaded
__________________
Salu2!
  #5 (permalink)  
Antiguo 23/05/2014, 08:27
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Pues ahí está la cuestión. A mí si me interesa que se haya cargado toda la página (mis imagenes son pocas y pequeñas) para poder precisamente meter mano a los elementos HTML con el getDocumentByID. Es decir, que mi función se inicie cuando ya está creado el DOM de la página, que es lo que se supone que hace window.onload.

No se, igual tengo un problema de "concepto". A ver si alguien nos da un remedio.

Precisamente ahora estaba leyendo sobre los "oyentes" de eventos (de ahí mi script "oyente") para el tema de javascript "no obstrusivo". Ya que estoy empezando, pues hacerlo bien desde el principio.
  #6 (permalink)  
Antiguo 23/05/2014, 08:57
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

@italico76 las variable globales las puedes manejar creando un objeto global y a partir de ahi crear propiedades o metodos.
Código Javascript:
Ver original
  1. var global = {};
  2.  
  3. global.sumar = function (){
  4. this.numero = 4;
  5. };
  6.  
  7. global.sumar.prototype =
  8. {
  9. suma:function(){}
  10. };

Objeto window se ejecuta en un contexto global puedes hacer varios archivos externos js:
Código Javascript:
Ver original
  1. (function () {
  2.   'use strict';
  3.  
  4.   function funciona() {}
  5.  
  6.   funciona.prototype = {
  7.    
  8.     algo: function () {
  9.     }
  10.  
  11.   window['global'] = window['global'] || {};
  12.   window['global'].funciona = funciona;
  13.  
  14. }());
Código Javascript:
Ver original
  1. var local = window['global'];
  2. local.funciona

el objeto window es creado en cada ventana que abres entonces aqui empieza una jerarquia
window es el padre del cual se desprende document el cual tambien tiene sus propiedades y metodos.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #7 (permalink)  
Antiguo 23/05/2014, 09:03
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

@mnocturno es simple que la funcion calendario ejecutada en el evento onload reciba como parametro el "id" con el que quieres trabajar.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #8 (permalink)  
Antiguo 23/05/2014, 09:14
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Cita:
Iniciado por jp91 Ver Mensaje
@mnocturno es simple que la funcion calendario ejecutada en el evento onload reciba como parametro el "id" con el que quieres trabajar.

En el html tengo el <div id="calendario">

entonces en window.onload: calendario("calendario");

¿Sería así?

Gracias.
  #9 (permalink)  
Antiguo 23/05/2014, 09:51
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Dudas Javascript

@jp91 : has notado que tus ejemplos casi nunca funcionan ?

Agradezco la intencion pero si los pruebo..... siempre me dan error:

Código Javascript:
Ver original
  1. (function () {
  2.   'use strict';
  3.  
  4.   function funciona() {}
  5.  
  6.   funciona.prototype = {
  7.    
  8.     algo: function () {
  9.     }
  10.  
  11.   window['global'] = window['global'] || {};
  12.   window['global'].funciona = funciona;
  13.  
  14. }());

En el primer ejemplo tu metodo sumar no hace lo que dice tampoco
__________________
Salu2!
  #10 (permalink)  
Antiguo 23/05/2014, 10:49
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Dudas Javascript

Realmente no entiendo bien tus dudas, pero a ver si puedo aclarar algunas cosas.

Regularmente se trata de minimizar las variables globales, ya que principalmente pueden causar colisiones, entonces es una buena práctica definir un módulo global donde estarán almacenadas tus funciones y variables. Por ejemplo, una manera sencilla sería:

Código Javascript:
Ver original
  1. // Declara tu namespace global.
  2. var App = App || {};
  3.  
  4. App.method = function() {
  5.     /* Magic Here */
  6.     console.log("Ponies and Rainbows");
  7. };
  8.  
  9. App.method();
Fiddle: http://jsfiddle.net/y6Edp/


O algo mejor sería algo como esto (inspirado en angularjs), te permite tener variables "privadas" y exponer una API de buena manera:

Código Javascript:
Ver original
  1. (function (window) {
  2.     var app = (function () {
  3.         return window.app || (window.app = Object());
  4.     })();
  5.  
  6.     app.method = function () {
  7.         /* Magic Here */
  8.         console.log("Ponies and Rainbows");
  9.     };
  10. })(window);
  11.  
  12. app.method();
Fiddle: http://jsfiddle.net/2eYmF/


El asunto de la jerarquía de objetos tampoco lo entiendo.

window es el objeto global, que usa la interfaz Window; window.screen y window.document son propiedades de este objeto, no tiene que ver con jerarquias o herencias.

Saludos
__________________
Grupo Telegram Docker en Español
  #11 (permalink)  
Antiguo 23/05/2014, 11:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Dudas Javascript

@Carlangueitor : te agradezco mucho y tambien a @jp91 que creo quizo expresar lo mismo aunque no se lo entendí.


Respecto de la duda original de variables globales.. viene de por ejemplo haber modificado un script para otro forero en el cual ya de por si el codigo original manejaba dos funciones una que inicializaba variables y la otra que las leia y rotaba un texto


Respecto a lo segundo, hasta ahora he trabajado principalmente con PHP donde el modelo POO es de Clases y no de prototipos y tambien leido algun libro de JAVA y es la misma historia: jerarquia de clases.

Que seria una Interfaz en JS ?
__________________
Salu2!
  #12 (permalink)  
Antiguo 23/05/2014, 11:33
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Dudas Javascript

Sigo sin ver el primer problema, el código de ese post simplemente es malo, pero no veo por que el usar eventos te genera variables globales.

Y lo segundo es que no tiene que ver con nada de eso. Simplemente son propiedades. Por ejemplo con PHP sería algo así:

Código PHP:
Ver original
  1. <?php
  2.     class Window {
  3.         var $screen = new Screen;
  4.     }
  5. ?>

Como ves no emplea nada de jqrarquía de clases ni nada por el estilo.


Y una interfaz en javascript es lo mismo que una interfaz en Java o PHP, es un elemento básico de la programación orientada a Objetos. Aunque la programación sea basada en prototipos y no en classes incluye los elementos de programación orientada objetos básicos (aunque se implementen de distinta manera).

Saludos
__________________
Grupo Telegram Docker en Español
  #13 (permalink)  
Antiguo 23/05/2014, 12:10
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Dudas Javascript

Gracias @Carlangueitor .. lo habia inferido del post tuyo anterior, entonces:


window es un objeto

screen es otro objeto

window.screen.heigth es una propiedad del objeto screen el cual a su vez esta referenciado dentro de una propiedad del objeto window
__________________
Salu2!
  #14 (permalink)  
Antiguo 23/05/2014, 12:11
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Dudas Javascript

Efectivamente.

Saludos
__________________
Grupo Telegram Docker en Español
  #15 (permalink)  
Antiguo 23/05/2014, 12:13
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Te dan error? ps hay dos pciones o estoy equivocado o tu no has comprendido del todo js y siendo sincero dudo mucho que sea la primera ejejejej, todos mis juegos usan una sintaxis similar o mas complicada , lo que hace @Carlangueitor es la manera de algunos frameworks de hacerte la tarea facil, debido que si quieres comunicar modulos en diferentes archivos js ps eso es una forma.
En mi primer ejemplo solo es cuestion de crear una nueva instancia:
Código Javascript:
Ver original
  1. var otro = new global.sumar()  //blablabla
En el segundo ejemplo ps si puede que sea mas dificil de entender jjjj pero igual funciona jjjj
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #16 (permalink)  
Antiguo 23/05/2014, 12:20
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Veamos el significado de jerarquia:
Organización de personas o cosas en una escala ordenada y subordinante según un criterio de mayor o menor importancia o relevancia dentro de la misma.

Aplicando a nuestra contexto , entonces si hay una jeraquia el actual window encabeza la lista , este apunta asi mismo, a window objects, document, navigator,location history, screen etc..., y por ende hay una herencia de objetos.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #17 (permalink)  
Antiguo 23/05/2014, 12:22
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Dudas Javascript

Damn! @jp91, no hagas eso, no instancies cada rato un objeto de ese tipo para acceder a funciones, puedes tener un problema de leaks de memoria.

Saludos
__________________
Grupo Telegram Docker en Español
  #18 (permalink)  
Antiguo 23/05/2014, 12:24
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Cita:
Iniciado por mnocturno Ver Mensaje
En el html tengo el <div id="calendario">

entonces en window.onload: calendario("calendario");

¿Sería así?

Gracias.
Sip asi es:

Código Javascript:
Ver original
  1. function algo (id){
  2. var local = document.getElementById(id);
  3. //blablabla
  4. }

o tambien una funcion que retorne el id obtenido:

Código Javascript:
Ver original
  1. function obtener(id)        { return document.getElementById(id);  };
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #19 (permalink)  
Antiguo 23/05/2014, 12:26
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Dudas Javascript

Cita:
Iniciado por jp91 Ver Mensaje
y por ende hay una herencia de objetos.
No, eso da lugar a confusiones. Herencia de objetos, se entiendo como crear una subclase (o sub prototipo) que herede propiedades y/o metodos del padre.

Saludos
__________________
Grupo Telegram Docker en Español
  #20 (permalink)  
Antiguo 23/05/2014, 12:33
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Cita:
Iniciado por Carlangueitor Ver Mensaje
Damn! @jp91, no hagas eso, no instancies cada rato un objeto de ese tipo para acceder a funciones, puedes tener un problema de leaks de memoria.

Saludos
?????????? Esto es simple:
Código Javascript:
Ver original
  1. Engine.Game.prototype.constructor = Engine.Game;
  2.  
  3. //Engine variable global
  4. Engine.fisica.normal.fuerza = function () {
  5. };
  6.  
  7. Engine.fisica.normal.fuerza.prototype = Object.create(clase.fuerza.prototype);
  8. Engine.fisica.normal.fuerza.prototype.constructor = Engine.fisica.normal.fuerza
;


tranquilo hasta ahora mis juegos corren en pc a 60 fps estables Saludos.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #21 (permalink)  
Antiguo 23/05/2014, 12:36
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

@Carlangueitor sip puede traer confusiones mejor lo borro pero me estoy refiriendo es la jerarquia en si.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #22 (permalink)  
Antiguo 23/05/2014, 14:39
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Pues lo mío solucionado con lo apuntado por jp91.

Poniendo el parametro en la llamada a la función en el window.onload y la variable local=documet.get..... en la propia función, funciona perfectamente. Y no uso la variable para nada más.

Como en mi función llama a otras funciones que interesan otros divs, no he tenido más que ir "arrastrando" los divs internos de la manera apuntada arriba.

Que cosas. Y ya por curiosidad, ¿a que se debe esto? ¿Que razón "técnica" tiene?

Muchísimas gracias. Con esto he avanzado un montón con mi proyecto.

Y otra preguntita, ya del funcionamiento del foro. ¿Como haceís para poner el código "en bonito"?
  #23 (permalink)  
Antiguo 23/05/2014, 16:26
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

jejej razon tecnica ps nada aqui esta:

El evento load dispara el evento al final del proceso de carga del documento. En este punto, todos los objetos del documento son DOM, y todas las imágenes y sub-frames han terminado de cargarse.

y Para ponder el codigo bonito jejej
escribes el codigo lo seleccionas y luego donde esta el menu despegable "highlight" escoges el lenguaje y listo
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #24 (permalink)  
Antiguo 23/05/2014, 23:13
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Ya. Pero me refería a la necesidad de poner el id del div como parámetro, que no funcionara con función() a secas, dado que se supone que ya estaba el DOM hecho.
  #25 (permalink)  
Antiguo 24/05/2014, 08:54
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Ps en teoria el navegador va descargando y ejecutando, digamos colocar una funcion js en el "head" llamando una etiqueta en el body ps..... ,el navegador lee e interpreta el codigo html antes que las etiquetas por lo tanto cuando se intenta llamar aun no existe. Lo raro es porque a ti no te sirve llamarlo directamente puedes mostrar el codigo de una de tus funciones.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #26 (permalink)  
Antiguo 25/05/2014, 05:55
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Cita:
Iniciado por jp91 Ver Mensaje
Ps en teoria el navegador va descargando y ejecutando, digamos colocar una funcion js en el "head" llamando una etiqueta en el body ps..... ,el navegador lee e interpreta el codigo html antes que las etiquetas por lo tanto cuando se intenta llamar aun no existe. Lo raro es porque a ti no te sirve llamarlo directamente puedes mostrar el codigo de una de tus funciones.
HTML:

Código HTML:
Ver original
  1. <div id="calendario">
  2.     <div id="fechaactual"></div> <!-- Div para mostrar la fecha actual -->
  3.     <div id="mesactual"></div> <!-- Div para el mes y el año y los enlaces anterior y posterior -->
  4.     <table id="tabladias">
  5.         <tr id="fila0"><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr>
  6.         <tr id="fila1"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
  7.         <tr id="fila2"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
  8.         <tr id="fila3"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
  9.         <tr id="fila4"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
  10.         <tr id="fila5"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
  11.         <tr id="fila6"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
  12.     </table>
  13.     <div id="reloj"></div> <!-- Div para el reloj -->
  14. </div>

script principal:

Código Javascript:
Ver original
  1. window.onload=function()
  2.     {
  3.         //Hay que pasar el id del div
  4.         calendario("calendario");
  5.     }

script calendario:

Código Javascript:
Ver original
  1. function calendario(calen)
  2.     {
  3.         //var local sirve para que conozca el div donde actuar (si no, no funciona)
  4.         var local=document.getElementById(calen);
  5.        
  6.         var meses=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
  7.         var diasemana=["Domingo","Lunes","Martes","Mi&eacutercoles","Jueves","Viernes","S&aacutebado"];
  8.         var diasemanacorto=["Sem","Lu","Ma","Mi","Ju","Vi","S&aacute","Do"];
  9.         var i, j, celda, fila;
  10.  
  11.         var hoy=new Date();
  12.         var diasemanahoy=hoy.getDay(); //Día de la semana actual
  13.         var diahoy=hoy.getDate(); //Día del mes actual
  14.         var meshoy=hoy.getMonth(); //Mes actual
  15.         var anniohoy=hoy.getFullYear(); //Año actual
  16.         var fila=document.getElementById("fila0");
  17.         var mescal=meshoy; //mes principal para el anterior y el posterior
  18.         var anniocal=anniohoy;// año principal para el anterior y el posterior
  19.        
  20.         var primeromes, prsem, diaprmes, prcelda, empezar;
  21.         var diames, midia, mimes, miannio;
  22.    
  23.         //Rellana la cabecera con la fecha de hoy, el mes y años y los marcadores para cambiar de mes y años
  24.         document.getElementById("fechaactual").innerHTML="Hoy, "+diasemana[diasemanahoy]+" "+diahoy+" de "+meses[meshoy]+" de "+anniohoy;
  25.    
  26.         //Rellena la primera fila de la tabla calendario con los días de la semana de dos letras
  27.         for (i=0;i<8;i++)
  28.             {
  29.             celda=fila.getElementsByTagName("th")[i];
  30.             celda.innerHTML=diasemanacorto[i];
  31.             }
  32. ...
  #27 (permalink)  
Antiguo 25/05/2014, 07:16
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Ps si yo hago esto en la funcion calendario sin necesidad de pasar el parametro funciona:

Código Javascript:
Ver original
  1. var local=document.getElementById("calendario");
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #28 (permalink)  
Antiguo 25/05/2014, 12:18
 
Fecha de Ingreso: mayo-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Respuesta: Dudas Javascript

Cierto!!!

Nada, ha sido un cruce de cables. O más bien, "la novatada".

Muchísimas gracias.
  #29 (permalink)  
Antiguo 25/05/2014, 13:13
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Dudas Javascript

Cita:
Iniciado por mnocturno Ver Mensaje
Cierto!!!

Nada, ha sido un cruce de cables. O más bien, "la novatada".

Muchísimas gracias.
jejejejej genial que te haya funcionado.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #30 (permalink)  
Antiguo 26/05/2014, 08:18
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Dudas Javascript

Amigo:

Le pregunto por que dice que la form de hacer el Namespace de AngularJS permite "exponer una API de buena (mejor) manera" ?

De por si no entiendo bien que sucede al escribir:

Código Javascript:
Ver original
  1. var App = App || {};

menos de la forma:

Código Javascript:
Ver original
  1. window.app || (window.app = Object());

y menos que menos... por que la segunda forma que a todas luces es mas complicada es mejor ?


Que pena ser tan ignorante!!! pero en serio estoy leyendo


Cita:
Iniciado por Carlangueitor Ver Mensaje
Código Javascript:
Ver original
  1. // Declara tu namespace global.
  2. var App = App || {};
  3.  
  4. App.method = function() {
  5.     /* Magic Here */
  6.     console.log("Ponies and Rainbows");
  7. };
  8.  
  9. App.method();
Fiddle: http://jsfiddle.net/y6Edp/


O algo mejor sería algo como esto (inspirado en angularjs), te permite tener variables "privadas" y exponer una API de buena manera:

Código Javascript:
Ver original
  1. (function (window) {
  2.     var app = (function () {
  3.         return window.app || (window.app = Object());
  4.     })();
  5.  
  6.     app.method = function () {
  7.         /* Magic Here */
  8.         console.log("Ponies and Rainbows");
  9.     };
  10. })(window);
  11.  
  12. app.method();
__________________
Salu2!

Etiquetas: dudas, funcion, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.