SlideShare a Scribd company logo
1 of 6
Download to read offline
19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery
http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 1/6
Este es un compilado que hago en base a
algunos libros que lei, experiencias y webs
sobre javascript, y considero que todo
desarrollador deberia conocer
Antes de comenzar les recomiendo si quieren
profundizar en el tema aún más, lean
Javascript the Goods Parts, libro escrito por
uno de los maestros de javascript Douglas
Crockford,
Y también Javascript Patterns un libro de
Stoyan Stefanov que apunta a los niveles
intermedios y avanzados de javascript y que
francamente lo ubico entre los mejores libros
que he leido.
Bien la idea de este compilado es contarles un
poco sobre funciones y cuestiones basicas y
avanzadas de javascript.
Para comenzar me gustaría contar que
javascript es un lenguaje funcional orientado a objetos con herencia de prototipos , esto que significa?
Los objetos y clases que conocemos de otros lenguajes como php no son representados de la misma
manera, en javascript objetos heredan de otros objetos y no tenemos clases.
Javascript es un lenguaje que se formo en base a varios lenguajes, tomó la sintaxis de java, las
expresiones regulares de perl, las funciones de Schema, y colaboró con el desarrollo propio de los
prototipos.
Javascript es un lenguaje no tipado , si bien cada variable al asignarle un valor obtiene un tipo no hay
que definir el tipo con previo aviso, también permite que las variables puedan pasar a contener
valores de tipos diferentes a los originales , por lo que hay que tener mucho cuidado con eso.
Sobre variables globales en javascript
Cada vez que se define una varible sin estar contenida en una función esta toma como ámbito todo el
proyecto en otras palabras se convierte en una variable global , algo que a los desarrolladores no les
Categorías
Acordeón
Autocompletar
javascript
jQuery
jsonP
Menú
Paginado
PHP
Ranking
Utilidades
Ultimos Posts
Como seguir las estadísticas más
importantes de nuestros sitios rápido
y todas juntas.
Agregar una barra de notificación
Javascript a su sitio web
Galería de fotos jQuery con efecto
acordeón
Autocompletar un textbox usando
jQuery
Ejemplo de Altas , bajas y
modificaciones con php Ajax y jQuery
v2.0
59Like
Todo lo que un desarrollador no puede
desconocer de javascript
Twittear 31 55Like
Bamboo Nested
Variables
marketplace.atlassian.com
Simplify variable management with Nested
Variables for Bamboo add-on
Agregue esta barra en su sitio Grátis ! Mantenga informado a sus usuarios ver Código
Home Search
19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery
http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 2/6
gusta para nada ya que es proclibe a generar problemas, toda variable depende de un contexto , si se
crea dentro de una función su contexto será la función, si se crea dentro de un objeto dependerá del
objeto y si se crea sin hacer referencia a nada es decir sin estar incluida en ningún lado , sobre el
cuerpo de la página como ya dije será una variable global y dependerá del objeto window.
por ejem si creo la variable nombre
var nombre;
es lo mismo que hacer
this.nombre;
o también
window.nombre;
algo muy peligroso ya que en window también hay otras variables del sistema que son reservadas y
uno las podría llegar a pisarlas sin querer, u obtener errores al hacerlo.
es por eso que los buenos desarrolladores crean una variable global a la que denominan namespace
y dentro de esta variable o namespace incorporan todo su código.
por ejemplo
var NAMESPACE={};
NAMESPACE.nombre=’tutorial’;
de esta forma todo queda contenido dentro de NAMESPACE y nos aseguramos de que nada se nos
escape por ahi.
Use NAMESPACE pero podria ser cualquier otra variable, y las mayusculas es solo por convención de
variables globales.
Funciones en javascript
Hablando de funciones, estas no son lo que acostumbramos a ver en otros lenguajes tradicionales, las
funciones son objetos y por lo tanto son asignables, es por eso que se pueden asignar funciones a
variables, a las cuales se las denomina funciones anonimas. Toda creación de funciones se hace de
esta manera aunque lo definamos de manera diferente, por ejem:
Cuando se crea una función dandole un nombre en realidad todo es un truco ya que internamente se
crea una variable con el nombre de la función y le asigna la función adentro, algo bastante complicado
de imaginar pero es así.
Todas las funciones tienen un link al prototipo Function que a su vez tiene un link al prototipo Object,
es por eso que si le aplicamos el operador typeof a la función nos devuelve object y si extendemos el
prototipo de Object al mismo tiempo extendemos el prototipo Function.
Respecto a los parametros de las funciones, javascript no genera un error si la cantidad de valores
que se pasan no es la misma que la que se espera. En si lo que sucede es, si la función espera 3
parametros y se le pasan 4 valores, el último valor es descartado, si la función espera 3 y se le pasan
solo 2, el último parametro de la función contendrá “undefined”.
Javascript no posee un sistema para establecer parametros por defecto , si el parametro no viene se
llena con undefined y es todo, de ahi pueden surgir varias formas de solucionar el problema.
jQuery tiene un método extend que funciona muy bien, pero también podriamos preguntar “if (variable
typeof indefined)” y completar con lo que queremos o también una forma muy elegante es
function (var1,var2){
var1 = var1 || ‘valor1′;
var2 = var2 || ‘valor2′;
}
De esta manera si el valor no viene el operador or (||) dará falso en su primera instancia devolviendo
la segunda que dará true, las variables var1 y var2 se cargarian con los strings “valor1″ y “valor2″
respectivamente.
esta claro que este método es válido si lo que queremos asignar por defecto es algo que al evaluar da
true, usando por ejem null no funcionaría, y si pasamos por parametros un valor falso , tomaría como
que el parametro no existe, descartaría ese valor y usaria el valor por defecto.
Objetos en javascript
Existen los objetos en javascript y existe la herencia donde objetos heredan de otros objetos (lo
veremos mas abajo), existe el foreach y existen los arrays estos últimos con estructura limitada.
Hay 3 formas de crear un objeto en javascript
1-Mediante literales, declaración directa
var objeto = new Objet();
ó también
var objeto ={} // objeto vacio
var objeto ={name:’lucas’,lastname:’forchino’}; //objeto con atributos
//objeto con métodos
var objeto ={
name:’lucas’,
lastname:’forchino’,
getName:function(){return this.name}
}
cuando el objeto se crea usando literales, posee un link al prototipo Object, de esta manera si
extendemos a Object extendemos también a los objetos. Esto es: agrego un nuevo método a Object y
todos los objetos pasan a tener ese método sin importar en que lugar del código fueron creados, con
19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery
http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 3/6
esto digo , creo un objeto 1 luego extiendo a Objecto con el método 2 luego el objeto 1 por más que
fue creado con anterioridad pasa a contener el método 2.
2-Crear un objecto clonando usando un truco muy simple
Para clonar un objeto de otro objeto se usa truco es muy simple , se crea una función vacía, a esta se
le extiende el prototipo asignandole el objeto a clonar, de esta manera obtenemos una función
constructora con la estructura del objeto, posteriormente se crea el nuevo objeto usando new.
var objeto ={name:’lucas’,lastname:’forchino’}; //objeto con atributos a clonar
creamos la funcion vacia
var F=function(){} ;
copiamos el objeto dentro del prototipo de la función
F.prototype = objeto;
obtenemos el objeto nuevo
objeto2 = new F();
una vez aprendida esta técnica se puede meter dentro de una función para hacerlo mas rápido y
despreocuparse de su implementacion.
En si lo que se hace es usar el método de creación 3 (a continuación) adaptado a objetos que no
tienen constructor.
3- Si contiene constructor , invocarlo mediante el operador new
Una variable que contiene una función es utilizada como constructora de un nuevo objeto.
Estas variables por convención deben empezar con mayúscula y serian de la forma
var Objeto = function(){
this.name=’lucas’;
this.lastname=’forchino’;
}
Utilizando la función constructora genero un objeto nuevo.
var objeto2 = new Objeto;
Otra forma de crear un objeto de deriva de las formas anteriores es retornando el objeto por medio de
una función, en si la creación se produce dentro de la función y se asigna su resultado a una variable
que contendrá el objeto. Este método es muy interesante ya que, debido al closure, permite hacer
cosas como mantener atributos privados dentro de un objeto.
var objectFactory=function(){
// variable solo accesible por la funcion siguiente debido a closure
var variable_privada=’31′;
// función u objeto que se retorna, que tiene acceso a la variable anterior
return function(){
this.name =”lucas”;
this.apellido=”forchino”;
this.getEdad=function(){
return variable_privada;
}
}
}
luego para obtener un objeto nuevo hacemos
var objeto2= objectFactory();
Herencia en javascript:
Hay varias formas de crear herencia en javascript, solo voy mostrar las dos mas simples y comunes.
1-Sobrecargando directamente un objeto
Algo muy simple de pensar si tengo dos objetos iguales creados de la misma forma, incorporando
métodos a uno estoy extendiendo el objeto original.
tenemos
var Objeto = function(){
this.name=’lucas’;
this.lastname=’forchino’;
}
var objeto1= new Objeto;
var objeto2= new Objeto;
extiendo el objeto 2 añadiendo un atributo y un método
objeto2.middleName=’francisco’;
objeto2.getMiddleName= funcion(){
return this.middleName;
}
de esta forma el objeto1 se mantiene su estructura original mientras que el objeto2 fue extendido de
Objeto agregando un atributo y un método.
19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery
http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 4/6
2-Añadir el objeto padre en el prototipo del objeto hijo
// creo el constructor del objeto padre
var Padre=function(){
this.name=’jose’;
this.apellido=’forchino’;
}
// constructor del objeto hijo
var Hijo=function(){
this.name=’lucas’;
}
// heredo del padre añadiendo el objeto padre al prototipo del hijo usando new ! muy importante de
otra manera asignariamos la función al prototipo y no el objeto
Hijo.prototype=new Padre();
// creo un objeto hijo
var obj= new Hijo;
//el objeto hijo contiene la estructura del padre y del hijo, los atributos o metodos que prevalecen son
los del
// hijo por sobrecargar al padre
document.writeln(obj.name); // lucas
document.writeln(obj.apellido); //forchino
// si cambio el prototipo de la función padre
Padre.prototype.edad=56;
// todos lo hijos cambian su prototypo , si imporatar si ya fueron creados, todos pasan a leer el atributo
añadido.
document.writeln(obj.edad); // 56
Scope de variables en javascript.
Este es uno de los temas más simples y mas complejos a la vez un error podria hacer que nuestro
programa tenga comportamientos extraños muy dificiles de debuggear.
Hay 4 tipos de scope que puede obtener el metodo this en javascript
1- Dentro de la función u objeto donde se hace referencia a la misma
función u objeto
Todos los métodos de un objeto cuando invocan “this” hacen referencia a su mismo objeto, esto es
Objeto={
name:’lucas’.
getName:function(name){
return this.name;
}
}
El return devolverá el valor guardado en name del objeto ya que “this” se refiere al objeto mismo, para
complicar mas las cosas pase por parametro un valor name, este valor name es una variable local que
no influye en el valor devuelto y no tiene nada que ver con el valor name del objeto, de esta manera
podemos trabajar con ambas variables name sin problemas haciendo referncia a una u otra con o sin
“this”.
2- Fuera del objeto donde se hace referencia al entorno global
Cualquier funcion que no esta dentro de un objeto , es decir no es un método de algún objeto , “this”
hara referencia a window, esto si uno se lo imagina como funciones generales podría llegar a pensar
que no hay problemas ya que si tenemos una función suelta por ahi podría ser válido que “this” llame
a lo que tiene inmediatamente arriba que es el objeto window del cual depende.
El problema surge cuando tenemos una función dentro de otra función y es ahi donde uno espera que
las funciones internas hagan referencia con “this” a las externas cuando en realidad por un error del
lenguage todas las funciones apuntan con this al ámbito global.
es por esto que si tenemos
var a= function(){
this.contenido=”a”;
this.b = function(){
this.contenido=”b”;
}
}
var contenido=”;
a();
// contenido vale “a”
b(); // puedo llamar a b mágicamente
// contenido vale “b”
lo que sucede es que a modifica la variable global porque “this” hace referencia a ese ámbito, luego
crea un función que se llama b sobre el entorno global porque la misma situación, si ejecutamos b()
también modificará la variable global porque al no ser un método de un objeto también modifica el
ámbito global.
19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery
http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 5/6
3- Dentro de un constructor donde se referencia a un nuevo objeto
Dentro del constructor o función constructora, “this” hace referencia al objeto que se esta creando. La
creación de un objeto usando un constructor funciona de la siguiente manera hacemos new sobre una
variable que contiene una función y esto internamente crea objeto vacio que se pasa como ámbito u
objeto “this” a la función constructora, la función cuando trabaja sobre métodos u atributos usando
“this” esta trabajando sobre ese nuevo objeto creado, luego simplemente lo retorna por mas que
nuestra función no tenga un return.
si nuestra función constructora tuviera un return, la función trabajaría sobre el objeto nuevo pero
devolvería lo que retornamos con return.
Hay que tener en cuenta que en estos casos solo se pueden retornar objetos, como una función es un
objeto , también es valido retornar una función, si lo que se retorna no es un objeto la función
retornara el objeto inicialmente creado dejando de lado el valor puesto en return.
Esto es:
a- No tengo Return
Como resultado obtengo un nuevo objeto que fue previamente pasado a la función y al cual esta hizo
referencia con “this”
var Objeto = function(){
this.name=’lucas’;
}
var ob= new Objeto(); // ob = {name:’lucas’}
b- Retorno un string
Obtengo el mismo resultado que el caso 1 , ya que el return no es un objeto
var Objeto = function(){
this.name=’lucas’;
}
var ob= new Objeto(); // ob = {name:’lucas’}
c- Retorno un Objeto
Obtengo el objeto retornado, en este caso es un objeto vacio
var Objeto = function(){
this.name=’lucas’;
return {};
}
var ob= new Objeto();// ob ={}
d- Retorno una función
Obtengo una función puesto que como ya dijimos las funciones son objetos también.
var Objeto = function(){
this.name=’lucas’;
return function(){};
}
ob= new Objeto();// ob =function
4- Usando el método apply forzamos el scope a que tome un valor
definido
El método apply toma dos argumentos, el primero es el ámbito y el segundo son parametros, de esta
forma podemos ejecutar una función diciendole cual es el ámbito que queremos que tome y cual son
los parametros que tomará.
var a = function (params){}
a.apply(this,params);
en este caso la función a correrá con el ámbito “this” que se paso por parametro y hacen referencia al
ámbito en el que se encuentra a, también podriamos reemplazar “this” con un objeto function o lo que
sea que se quiera como ámbito, los parametros en este caso representados por params deben ser un
array con valores que serán los que recibira la función “a”
Expresiones regulares en javascript
Una de las grandes cualidades de javascript es la incorporacion de expresiones regulares, uno de los
grandes problemas al mismo tiempo es la legibilidad de ellas. Es muy dificil poder seguirlas y cuando
son extensas se hace mucho mas dificil, la imposibilidad de insertar espacios en blancos o incluso
poder separarlas hace que se conviertan en cadenas de una sola linea ilegibles, muy dificil de
mantener y crear, lo positivo es que permiten validar códigos complejos a los cuales se les quiere
ocultar la estructura de como estan formados.
Esta entrada fué posteada el 17/07/2011 a las 4:23 pm. Usted puede seguir cualquier comentario a por medio del siguiente RSS 2.0
feed. Usted puede dejar una respuesta si lo desea.
Posteado en javascript Por Lucas Forchino 3 Comentarios
3 Respuestas a "Todo lo que un desarrollador no puede desconocer de
javascript"
19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery
http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 6/6
M. Ramírez
says:
Reply02/12/2011 at 1:41 am
Hola Lucas:
Estoy aprendiendo a programar en Javascript y tratando de entender
las variables globales. Cuando dices que los buenos programadores
crean una variable global (por ejemplo namespace) y dentro de ella
incorporan todo su código, no entiendo como hacer eso. ¿Será que
cada vez que se crea una función la misma debe estar asignada a
una variableglobal? Por ejemplo,
NAMESPACE.miprimeravarglobal= miFunción(); // donde miFunción
devuelve el valor que se desea asignar a la variable global? mediante
return(mivalor);
Saludos desde Puerto Rico.
Lucas Forchino
says:
Reply10/12/2011 at 7:22 pm
Mira en ese caso la variable global es NAMESPACE, en tu ejemplo
mipremeravarglobal no es global puesto que se encuentra dendro de
NAMESPACE ,
por lo que has encapsulado tu funcion “mipremeravarglobal” dentro
de NAMESPACE y de esa manera evitas los problemas descriptos,
para llamarla tendrias que ejecutar
NAMESPACE.mipremeravarglobal().
saludos.
Colegatron
says:
Reply11/05/2013 at 1:42 pm
Llevo mucho tiempo programando en php y pensaba que sabía
javascript. Ahora que me lo tengo que mirar en serio, el asunto de los
ámbitos, herencia y demás se me está
atragantando un poco porque es bastante distinto a otros lenguajes y
además hay poca -documentación clara y concisa sobre javascript.
Gracias por esta pequeña pero ilustrativa introducción
Deje un Comentario
Facebook social plugin
Add a comment...
Comment using...
Comentarios Recientes
Juan Carlos on Ejemplo de Altas ,
bajas y modificaciones con php Ajax
y jQuery v2.0
Juan carlos on Ejemplo de Altas ,
bajas y modificaciones con php Ajax
y jQuery v2.0
jaime on Ejemplo de Altas , bajas y
modificaciones con php Ajax y jQuery
v2.0
MARCO A on Ejemplo de Altas , bajas
y modificaciones con php Ajax y
jQuery v2.0
Marco on Ejemplo de Altas , bajas y
modificaciones con php Ajax y jQuery
v2.0
Contacto
Feed Rss
Por Mail
Tw itter
Copyright © 2011-2014 Tutorial jQuery | Log In

More Related Content

What's hot

Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Oscar Correa
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos JavaJosé Mendoza
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)lzhat
 
Guia java script
Guia java scriptGuia java script
Guia java scriptmariaunefa
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3Harolsmr1103
 
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copiaIntroduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copiaesekazz
 

What's hot (11)

Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
 
Curso HTML 5 & jQuery - Leccion 11
 Curso HTML 5 & jQuery - Leccion 11 Curso HTML 5 & jQuery - Leccion 11
Curso HTML 5 & jQuery - Leccion 11
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos Java
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)
 
Guia java script
Guia java scriptGuia java script
Guia java script
 
Javascript
JavascriptJavascript
Javascript
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copiaIntroduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
 

Viewers also liked

Lecture+9+mkt+325+design+iii[1]
Lecture+9+mkt+325+design+iii[1]Lecture+9+mkt+325+design+iii[1]
Lecture+9+mkt+325+design+iii[1]guest745771
 
pde5i adulteration of herbal supplements
pde5i adulteration of herbal supplementspde5i adulteration of herbal supplements
pde5i adulteration of herbal supplementsJohn Edwards
 
Horror genre overview
Horror genre overviewHorror genre overview
Horror genre overviewzanne59
 
Juan david delgado 10 2
Juan david delgado 10 2Juan david delgado 10 2
Juan david delgado 10 2Juancho Diaz
 
02 meme ide
02 meme ide02 meme ide
02 meme idememeapps
 
Forschergruppe Klostermedizin (English)
Forschergruppe Klostermedizin (English)Forschergruppe Klostermedizin (English)
Forschergruppe Klostermedizin (English)Tobias Niedenthal
 
Media And Tech
Media And TechMedia And Tech
Media And Techjgomez27
 
Empathize and Define - Design Thinking Lab, Lokesh Sahal
Empathize and Define - Design Thinking Lab, Lokesh SahalEmpathize and Define - Design Thinking Lab, Lokesh Sahal
Empathize and Define - Design Thinking Lab, Lokesh SahalLokesh Sahal
 
Different cultures, same science
Different cultures, same scienceDifferent cultures, same science
Different cultures, same scienceSon Cao
 
Todd Kleperis: Australia's New High Speed Rail
Todd Kleperis: Australia's New High Speed Rail Todd Kleperis: Australia's New High Speed Rail
Todd Kleperis: Australia's New High Speed Rail Todd Kleperis
 
3 proj plan notes
3 proj plan notes3 proj plan notes
3 proj plan notesTony
 
인터넷마케팅 과제
인터넷마케팅 과제인터넷마케팅 과제
인터넷마케팅 과제hyunjung89
 
Lecture 11 protecting earth s atmosphere
Lecture 11 protecting earth s atmosphereLecture 11 protecting earth s atmosphere
Lecture 11 protecting earth s atmosphereDan Jiali Wang
 
Transit PSA Posters
Transit PSA PostersTransit PSA Posters
Transit PSA Postersdakotabill
 
K.I.S.S - Keys to Copy & Content that Generate Results
K.I.S.S - Keys to Copy & Content that Generate ResultsK.I.S.S - Keys to Copy & Content that Generate Results
K.I.S.S - Keys to Copy & Content that Generate ResultsVivastream
 
communicate with instrument by using lan
communicate with instrument by using lancommunicate with instrument by using lan
communicate with instrument by using lanAbdosalam Arif
 
Mfv ren ch.4
Mfv ren ch.4Mfv ren ch.4
Mfv ren ch.465swiss
 
Group Web Presentation: Week 10
Group Web Presentation: Week 10Group Web Presentation: Week 10
Group Web Presentation: Week 10Tarou
 

Viewers also liked (20)

Lecture+9+mkt+325+design+iii[1]
Lecture+9+mkt+325+design+iii[1]Lecture+9+mkt+325+design+iii[1]
Lecture+9+mkt+325+design+iii[1]
 
pde5i adulteration of herbal supplements
pde5i adulteration of herbal supplementspde5i adulteration of herbal supplements
pde5i adulteration of herbal supplements
 
Horror genre overview
Horror genre overviewHorror genre overview
Horror genre overview
 
Juan david delgado 10 2
Juan david delgado 10 2Juan david delgado 10 2
Juan david delgado 10 2
 
02 meme ide
02 meme ide02 meme ide
02 meme ide
 
Forschergruppe Klostermedizin (English)
Forschergruppe Klostermedizin (English)Forschergruppe Klostermedizin (English)
Forschergruppe Klostermedizin (English)
 
Media And Tech
Media And TechMedia And Tech
Media And Tech
 
Empathize and Define - Design Thinking Lab, Lokesh Sahal
Empathize and Define - Design Thinking Lab, Lokesh SahalEmpathize and Define - Design Thinking Lab, Lokesh Sahal
Empathize and Define - Design Thinking Lab, Lokesh Sahal
 
Different cultures, same science
Different cultures, same scienceDifferent cultures, same science
Different cultures, same science
 
Todd Kleperis: Australia's New High Speed Rail
Todd Kleperis: Australia's New High Speed Rail Todd Kleperis: Australia's New High Speed Rail
Todd Kleperis: Australia's New High Speed Rail
 
3 proj plan notes
3 proj plan notes3 proj plan notes
3 proj plan notes
 
인터넷마케팅 과제
인터넷마케팅 과제인터넷마케팅 과제
인터넷마케팅 과제
 
Lecture 11 protecting earth s atmosphere
Lecture 11 protecting earth s atmosphereLecture 11 protecting earth s atmosphere
Lecture 11 protecting earth s atmosphere
 
Treatment sheet
Treatment sheetTreatment sheet
Treatment sheet
 
Transit PSA Posters
Transit PSA PostersTransit PSA Posters
Transit PSA Posters
 
K.I.S.S - Keys to Copy & Content that Generate Results
K.I.S.S - Keys to Copy & Content that Generate ResultsK.I.S.S - Keys to Copy & Content that Generate Results
K.I.S.S - Keys to Copy & Content that Generate Results
 
communicate with instrument by using lan
communicate with instrument by using lancommunicate with instrument by using lan
communicate with instrument by using lan
 
Mfv ren ch.4
Mfv ren ch.4Mfv ren ch.4
Mfv ren ch.4
 
Eval question 4
Eval question 4Eval question 4
Eval question 4
 
Group Web Presentation: Week 10
Group Web Presentation: Week 10Group Web Presentation: Week 10
Group Web Presentation: Week 10
 

Similar to Todo lo que un desarrollador no puede desconocer de javascript tutorial j query

Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibalesbriant pati
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibalesbriant pati
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibalessbriant pati
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxssuser2e6b96
 
Programacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdfProgramacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdfSantiagoValenzuela24
 
Nvo objects powerbuilder
Nvo objects powerbuilderNvo objects powerbuilder
Nvo objects powerbuilderLinux
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado JavascriptEl Jota
 
Conceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScriptConceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScriptFrancisco Javier Arce Anguiano
 
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)yanburbano
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoolhgarzonr
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjsJona Val
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjsJona Val
 
Tema 7 polimorfismo en java
Tema 7 polimorfismo en javaTema 7 polimorfismo en java
Tema 7 polimorfismo en javaFaby Páez
 

Similar to Todo lo que un desarrollador no puede desconocer de javascript tutorial j query (20)

Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibales
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibales
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibaless
 
Retorno de valores
Retorno de valoresRetorno de valores
Retorno de valores
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
 
Jquery 2
Jquery 2Jquery 2
Jquery 2
 
Javascript OOP
Javascript OOPJavascript OOP
Javascript OOP
 
Programacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdfProgramacion Orientada Objetos.pdf
Programacion Orientada Objetos.pdf
 
Nvo objects powerbuilder
Nvo objects powerbuilderNvo objects powerbuilder
Nvo objects powerbuilder
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
Java beans en jsp
Java beans en jspJava beans en jsp
Java beans en jsp
 
Conceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScriptConceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScript
 
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjs
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjs
 
Guia poo
Guia pooGuia poo
Guia poo
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
 
Guia poo
Guia pooGuia poo
Guia poo
 
Tema 7 polimorfismo en java
Tema 7 polimorfismo en javaTema 7 polimorfismo en java
Tema 7 polimorfismo en java
 

Todo lo que un desarrollador no puede desconocer de javascript tutorial j query

  • 1. 19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 1/6 Este es un compilado que hago en base a algunos libros que lei, experiencias y webs sobre javascript, y considero que todo desarrollador deberia conocer Antes de comenzar les recomiendo si quieren profundizar en el tema aún más, lean Javascript the Goods Parts, libro escrito por uno de los maestros de javascript Douglas Crockford, Y también Javascript Patterns un libro de Stoyan Stefanov que apunta a los niveles intermedios y avanzados de javascript y que francamente lo ubico entre los mejores libros que he leido. Bien la idea de este compilado es contarles un poco sobre funciones y cuestiones basicas y avanzadas de javascript. Para comenzar me gustaría contar que javascript es un lenguaje funcional orientado a objetos con herencia de prototipos , esto que significa? Los objetos y clases que conocemos de otros lenguajes como php no son representados de la misma manera, en javascript objetos heredan de otros objetos y no tenemos clases. Javascript es un lenguaje que se formo en base a varios lenguajes, tomó la sintaxis de java, las expresiones regulares de perl, las funciones de Schema, y colaboró con el desarrollo propio de los prototipos. Javascript es un lenguaje no tipado , si bien cada variable al asignarle un valor obtiene un tipo no hay que definir el tipo con previo aviso, también permite que las variables puedan pasar a contener valores de tipos diferentes a los originales , por lo que hay que tener mucho cuidado con eso. Sobre variables globales en javascript Cada vez que se define una varible sin estar contenida en una función esta toma como ámbito todo el proyecto en otras palabras se convierte en una variable global , algo que a los desarrolladores no les Categorías Acordeón Autocompletar javascript jQuery jsonP Menú Paginado PHP Ranking Utilidades Ultimos Posts Como seguir las estadísticas más importantes de nuestros sitios rápido y todas juntas. Agregar una barra de notificación Javascript a su sitio web Galería de fotos jQuery con efecto acordeón Autocompletar un textbox usando jQuery Ejemplo de Altas , bajas y modificaciones con php Ajax y jQuery v2.0 59Like Todo lo que un desarrollador no puede desconocer de javascript Twittear 31 55Like Bamboo Nested Variables marketplace.atlassian.com Simplify variable management with Nested Variables for Bamboo add-on Agregue esta barra en su sitio Grátis ! Mantenga informado a sus usuarios ver Código Home Search
  • 2. 19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 2/6 gusta para nada ya que es proclibe a generar problemas, toda variable depende de un contexto , si se crea dentro de una función su contexto será la función, si se crea dentro de un objeto dependerá del objeto y si se crea sin hacer referencia a nada es decir sin estar incluida en ningún lado , sobre el cuerpo de la página como ya dije será una variable global y dependerá del objeto window. por ejem si creo la variable nombre var nombre; es lo mismo que hacer this.nombre; o también window.nombre; algo muy peligroso ya que en window también hay otras variables del sistema que son reservadas y uno las podría llegar a pisarlas sin querer, u obtener errores al hacerlo. es por eso que los buenos desarrolladores crean una variable global a la que denominan namespace y dentro de esta variable o namespace incorporan todo su código. por ejemplo var NAMESPACE={}; NAMESPACE.nombre=’tutorial’; de esta forma todo queda contenido dentro de NAMESPACE y nos aseguramos de que nada se nos escape por ahi. Use NAMESPACE pero podria ser cualquier otra variable, y las mayusculas es solo por convención de variables globales. Funciones en javascript Hablando de funciones, estas no son lo que acostumbramos a ver en otros lenguajes tradicionales, las funciones son objetos y por lo tanto son asignables, es por eso que se pueden asignar funciones a variables, a las cuales se las denomina funciones anonimas. Toda creación de funciones se hace de esta manera aunque lo definamos de manera diferente, por ejem: Cuando se crea una función dandole un nombre en realidad todo es un truco ya que internamente se crea una variable con el nombre de la función y le asigna la función adentro, algo bastante complicado de imaginar pero es así. Todas las funciones tienen un link al prototipo Function que a su vez tiene un link al prototipo Object, es por eso que si le aplicamos el operador typeof a la función nos devuelve object y si extendemos el prototipo de Object al mismo tiempo extendemos el prototipo Function. Respecto a los parametros de las funciones, javascript no genera un error si la cantidad de valores que se pasan no es la misma que la que se espera. En si lo que sucede es, si la función espera 3 parametros y se le pasan 4 valores, el último valor es descartado, si la función espera 3 y se le pasan solo 2, el último parametro de la función contendrá “undefined”. Javascript no posee un sistema para establecer parametros por defecto , si el parametro no viene se llena con undefined y es todo, de ahi pueden surgir varias formas de solucionar el problema. jQuery tiene un método extend que funciona muy bien, pero también podriamos preguntar “if (variable typeof indefined)” y completar con lo que queremos o también una forma muy elegante es function (var1,var2){ var1 = var1 || ‘valor1′; var2 = var2 || ‘valor2′; } De esta manera si el valor no viene el operador or (||) dará falso en su primera instancia devolviendo la segunda que dará true, las variables var1 y var2 se cargarian con los strings “valor1″ y “valor2″ respectivamente. esta claro que este método es válido si lo que queremos asignar por defecto es algo que al evaluar da true, usando por ejem null no funcionaría, y si pasamos por parametros un valor falso , tomaría como que el parametro no existe, descartaría ese valor y usaria el valor por defecto. Objetos en javascript Existen los objetos en javascript y existe la herencia donde objetos heredan de otros objetos (lo veremos mas abajo), existe el foreach y existen los arrays estos últimos con estructura limitada. Hay 3 formas de crear un objeto en javascript 1-Mediante literales, declaración directa var objeto = new Objet(); ó también var objeto ={} // objeto vacio var objeto ={name:’lucas’,lastname:’forchino’}; //objeto con atributos //objeto con métodos var objeto ={ name:’lucas’, lastname:’forchino’, getName:function(){return this.name} } cuando el objeto se crea usando literales, posee un link al prototipo Object, de esta manera si extendemos a Object extendemos también a los objetos. Esto es: agrego un nuevo método a Object y todos los objetos pasan a tener ese método sin importar en que lugar del código fueron creados, con
  • 3. 19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 3/6 esto digo , creo un objeto 1 luego extiendo a Objecto con el método 2 luego el objeto 1 por más que fue creado con anterioridad pasa a contener el método 2. 2-Crear un objecto clonando usando un truco muy simple Para clonar un objeto de otro objeto se usa truco es muy simple , se crea una función vacía, a esta se le extiende el prototipo asignandole el objeto a clonar, de esta manera obtenemos una función constructora con la estructura del objeto, posteriormente se crea el nuevo objeto usando new. var objeto ={name:’lucas’,lastname:’forchino’}; //objeto con atributos a clonar creamos la funcion vacia var F=function(){} ; copiamos el objeto dentro del prototipo de la función F.prototype = objeto; obtenemos el objeto nuevo objeto2 = new F(); una vez aprendida esta técnica se puede meter dentro de una función para hacerlo mas rápido y despreocuparse de su implementacion. En si lo que se hace es usar el método de creación 3 (a continuación) adaptado a objetos que no tienen constructor. 3- Si contiene constructor , invocarlo mediante el operador new Una variable que contiene una función es utilizada como constructora de un nuevo objeto. Estas variables por convención deben empezar con mayúscula y serian de la forma var Objeto = function(){ this.name=’lucas’; this.lastname=’forchino’; } Utilizando la función constructora genero un objeto nuevo. var objeto2 = new Objeto; Otra forma de crear un objeto de deriva de las formas anteriores es retornando el objeto por medio de una función, en si la creación se produce dentro de la función y se asigna su resultado a una variable que contendrá el objeto. Este método es muy interesante ya que, debido al closure, permite hacer cosas como mantener atributos privados dentro de un objeto. var objectFactory=function(){ // variable solo accesible por la funcion siguiente debido a closure var variable_privada=’31′; // función u objeto que se retorna, que tiene acceso a la variable anterior return function(){ this.name =”lucas”; this.apellido=”forchino”; this.getEdad=function(){ return variable_privada; } } } luego para obtener un objeto nuevo hacemos var objeto2= objectFactory(); Herencia en javascript: Hay varias formas de crear herencia en javascript, solo voy mostrar las dos mas simples y comunes. 1-Sobrecargando directamente un objeto Algo muy simple de pensar si tengo dos objetos iguales creados de la misma forma, incorporando métodos a uno estoy extendiendo el objeto original. tenemos var Objeto = function(){ this.name=’lucas’; this.lastname=’forchino’; } var objeto1= new Objeto; var objeto2= new Objeto; extiendo el objeto 2 añadiendo un atributo y un método objeto2.middleName=’francisco’; objeto2.getMiddleName= funcion(){ return this.middleName; } de esta forma el objeto1 se mantiene su estructura original mientras que el objeto2 fue extendido de Objeto agregando un atributo y un método.
  • 4. 19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 4/6 2-Añadir el objeto padre en el prototipo del objeto hijo // creo el constructor del objeto padre var Padre=function(){ this.name=’jose’; this.apellido=’forchino’; } // constructor del objeto hijo var Hijo=function(){ this.name=’lucas’; } // heredo del padre añadiendo el objeto padre al prototipo del hijo usando new ! muy importante de otra manera asignariamos la función al prototipo y no el objeto Hijo.prototype=new Padre(); // creo un objeto hijo var obj= new Hijo; //el objeto hijo contiene la estructura del padre y del hijo, los atributos o metodos que prevalecen son los del // hijo por sobrecargar al padre document.writeln(obj.name); // lucas document.writeln(obj.apellido); //forchino // si cambio el prototipo de la función padre Padre.prototype.edad=56; // todos lo hijos cambian su prototypo , si imporatar si ya fueron creados, todos pasan a leer el atributo añadido. document.writeln(obj.edad); // 56 Scope de variables en javascript. Este es uno de los temas más simples y mas complejos a la vez un error podria hacer que nuestro programa tenga comportamientos extraños muy dificiles de debuggear. Hay 4 tipos de scope que puede obtener el metodo this en javascript 1- Dentro de la función u objeto donde se hace referencia a la misma función u objeto Todos los métodos de un objeto cuando invocan “this” hacen referencia a su mismo objeto, esto es Objeto={ name:’lucas’. getName:function(name){ return this.name; } } El return devolverá el valor guardado en name del objeto ya que “this” se refiere al objeto mismo, para complicar mas las cosas pase por parametro un valor name, este valor name es una variable local que no influye en el valor devuelto y no tiene nada que ver con el valor name del objeto, de esta manera podemos trabajar con ambas variables name sin problemas haciendo referncia a una u otra con o sin “this”. 2- Fuera del objeto donde se hace referencia al entorno global Cualquier funcion que no esta dentro de un objeto , es decir no es un método de algún objeto , “this” hara referencia a window, esto si uno se lo imagina como funciones generales podría llegar a pensar que no hay problemas ya que si tenemos una función suelta por ahi podría ser válido que “this” llame a lo que tiene inmediatamente arriba que es el objeto window del cual depende. El problema surge cuando tenemos una función dentro de otra función y es ahi donde uno espera que las funciones internas hagan referencia con “this” a las externas cuando en realidad por un error del lenguage todas las funciones apuntan con this al ámbito global. es por esto que si tenemos var a= function(){ this.contenido=”a”; this.b = function(){ this.contenido=”b”; } } var contenido=”; a(); // contenido vale “a” b(); // puedo llamar a b mágicamente // contenido vale “b” lo que sucede es que a modifica la variable global porque “this” hace referencia a ese ámbito, luego crea un función que se llama b sobre el entorno global porque la misma situación, si ejecutamos b() también modificará la variable global porque al no ser un método de un objeto también modifica el ámbito global.
  • 5. 19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 5/6 3- Dentro de un constructor donde se referencia a un nuevo objeto Dentro del constructor o función constructora, “this” hace referencia al objeto que se esta creando. La creación de un objeto usando un constructor funciona de la siguiente manera hacemos new sobre una variable que contiene una función y esto internamente crea objeto vacio que se pasa como ámbito u objeto “this” a la función constructora, la función cuando trabaja sobre métodos u atributos usando “this” esta trabajando sobre ese nuevo objeto creado, luego simplemente lo retorna por mas que nuestra función no tenga un return. si nuestra función constructora tuviera un return, la función trabajaría sobre el objeto nuevo pero devolvería lo que retornamos con return. Hay que tener en cuenta que en estos casos solo se pueden retornar objetos, como una función es un objeto , también es valido retornar una función, si lo que se retorna no es un objeto la función retornara el objeto inicialmente creado dejando de lado el valor puesto en return. Esto es: a- No tengo Return Como resultado obtengo un nuevo objeto que fue previamente pasado a la función y al cual esta hizo referencia con “this” var Objeto = function(){ this.name=’lucas’; } var ob= new Objeto(); // ob = {name:’lucas’} b- Retorno un string Obtengo el mismo resultado que el caso 1 , ya que el return no es un objeto var Objeto = function(){ this.name=’lucas’; } var ob= new Objeto(); // ob = {name:’lucas’} c- Retorno un Objeto Obtengo el objeto retornado, en este caso es un objeto vacio var Objeto = function(){ this.name=’lucas’; return {}; } var ob= new Objeto();// ob ={} d- Retorno una función Obtengo una función puesto que como ya dijimos las funciones son objetos también. var Objeto = function(){ this.name=’lucas’; return function(){}; } ob= new Objeto();// ob =function 4- Usando el método apply forzamos el scope a que tome un valor definido El método apply toma dos argumentos, el primero es el ámbito y el segundo son parametros, de esta forma podemos ejecutar una función diciendole cual es el ámbito que queremos que tome y cual son los parametros que tomará. var a = function (params){} a.apply(this,params); en este caso la función a correrá con el ámbito “this” que se paso por parametro y hacen referencia al ámbito en el que se encuentra a, también podriamos reemplazar “this” con un objeto function o lo que sea que se quiera como ámbito, los parametros en este caso representados por params deben ser un array con valores que serán los que recibira la función “a” Expresiones regulares en javascript Una de las grandes cualidades de javascript es la incorporacion de expresiones regulares, uno de los grandes problemas al mismo tiempo es la legibilidad de ellas. Es muy dificil poder seguirlas y cuando son extensas se hace mucho mas dificil, la imposibilidad de insertar espacios en blancos o incluso poder separarlas hace que se conviertan en cadenas de una sola linea ilegibles, muy dificil de mantener y crear, lo positivo es que permiten validar códigos complejos a los cuales se les quiere ocultar la estructura de como estan formados. Esta entrada fué posteada el 17/07/2011 a las 4:23 pm. Usted puede seguir cualquier comentario a por medio del siguiente RSS 2.0 feed. Usted puede dejar una respuesta si lo desea. Posteado en javascript Por Lucas Forchino 3 Comentarios 3 Respuestas a "Todo lo que un desarrollador no puede desconocer de javascript"
  • 6. 19/2/2014 Todo lo que un desarrollador no puede desconocer de javascript | Tutorial jQuery http://www.tutorialjquery.com/todo-lo-que-un-desarrollador-no-puede-desconocer-de-javascript/ 6/6 M. Ramírez says: Reply02/12/2011 at 1:41 am Hola Lucas: Estoy aprendiendo a programar en Javascript y tratando de entender las variables globales. Cuando dices que los buenos programadores crean una variable global (por ejemplo namespace) y dentro de ella incorporan todo su código, no entiendo como hacer eso. ¿Será que cada vez que se crea una función la misma debe estar asignada a una variableglobal? Por ejemplo, NAMESPACE.miprimeravarglobal= miFunción(); // donde miFunción devuelve el valor que se desea asignar a la variable global? mediante return(mivalor); Saludos desde Puerto Rico. Lucas Forchino says: Reply10/12/2011 at 7:22 pm Mira en ese caso la variable global es NAMESPACE, en tu ejemplo mipremeravarglobal no es global puesto que se encuentra dendro de NAMESPACE , por lo que has encapsulado tu funcion “mipremeravarglobal” dentro de NAMESPACE y de esa manera evitas los problemas descriptos, para llamarla tendrias que ejecutar NAMESPACE.mipremeravarglobal(). saludos. Colegatron says: Reply11/05/2013 at 1:42 pm Llevo mucho tiempo programando en php y pensaba que sabía javascript. Ahora que me lo tengo que mirar en serio, el asunto de los ámbitos, herencia y demás se me está atragantando un poco porque es bastante distinto a otros lenguajes y además hay poca -documentación clara y concisa sobre javascript. Gracias por esta pequeña pero ilustrativa introducción Deje un Comentario Facebook social plugin Add a comment... Comment using... Comentarios Recientes Juan Carlos on Ejemplo de Altas , bajas y modificaciones con php Ajax y jQuery v2.0 Juan carlos on Ejemplo de Altas , bajas y modificaciones con php Ajax y jQuery v2.0 jaime on Ejemplo de Altas , bajas y modificaciones con php Ajax y jQuery v2.0 MARCO A on Ejemplo de Altas , bajas y modificaciones con php Ajax y jQuery v2.0 Marco on Ejemplo de Altas , bajas y modificaciones con php Ajax y jQuery v2.0 Contacto Feed Rss Por Mail Tw itter Copyright © 2011-2014 Tutorial jQuery | Log In