CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E)



Documentos relacionados
GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

CAPAS O CONTENEDORES EN HTML. ETIQUETAS DIV Y SPAN. EJEMPLOS. MAQUETAR O DAR ESTRUCTURA A LAS PÁGINAS WEB. (CU00726B)

RECUPERAR DATOS DE UN FORMULARIO HTML USANDO PHP. USO DE $_GET. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00833B)

DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C)

PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B)

Tutorial Servicios Web

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Lo básico de Javascript. ISIS2603 Departamento de Sistemas y Computación Universidad de los Andes

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

Tema : ELECTRÓNICA DIGITAL

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A)

9. Objetos y clases Clases

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

Capítulo 6. Introducción a la POO

2. ABRIR UN NUEVO DOCUMENTO DE TRABAJO

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web.

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

APLICACIONES PARA INTERNET

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

Desarrollo Web en Entorno Servidor

Herramienta Solver. Activar Excel Solver

PASOS PARA CREAR UNA PÁGINA WEB

5.1. Organizar los roles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

El número de arriba de la fracción, el numerador, nos dice cuántas de las partes iguales están coloreadas.

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

JavaScript como Orientación a Objetos

Enunciado unidades fraccionarias fracción fracciones equivalentes comparar operaciones aritméticas fracciones propias Qué hacer deslizador vertical

Una plantilla es un modelo que puede servir como base para muchas hojas de cálculo. Puede incluir tanto datos como formatos.

Curso de Doctorado: Tecnologías de Objetos

La ventana de Microsoft Excel

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Antes de construir tu base de datos es conveniente saber que tipos de datos vas a almacenar y como distribuirlos.

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Primero, para organizar tus apuntes no olvides incluir: Ya en clase, algunas sugerencias que debes considerar son:

QUÉ NECESITO PARA ESCRIBIR CÓDIGO HTML Y CREAR PÁGINAS WEB? IDEAS PARA CREAR BUENAS WEB (CU00707B)

Notación UML para modelado Orientado a Objetos

QUÉ ES Y QUÉ ESTUDIAR PARA SER PROGRAMADOR WEB? ITINERARIO DE FORMACIÓN, PLAN DE ESTUDIOS O DE CARRERA. (CE00302D)

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

Google Calendar. Google Calendar

Los estados financieros proporcionan a sus usuarios información útil para la toma de decisiones

Lección 24: Lenguaje algebraico y sustituciones

Estructurar la información dentro del ordenador:

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Colegio Alexander von Humboldt - Lima. Tema: La enseñanza de la matemática está en un proceso de cambio

Ejercicio Nº 3: Realizar aumentos en una Tabla de Sueldos

Módulo II - PowerPoint

Analítica para tu Tienda Online

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Curso Internet Básico - Aularagon

Unidad 3 Direccionamiento IP (Subnetting)

Interpolación polinómica

Pruebas de unidad con JUnit

CONTROL DE ASISTENCIA DE PERSONAL

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

Para aquellos que tengan conocimientos de Access es lo más parecido a una consulta de referencias cruzadas, pero con más interactividad.

Es Visual Basic un buen lenguaje de programación para aprender a programar? Qué es VB? Versiones de Visual Basic. (CU00303A)

Programación I: Funciones y módulos

Modulo 1 El lenguaje Java

Usuarios y Permisos. Capítulo 12

Carteleras. Elaborar una agenda de conciertos y actividades musicales

Las razones financieras ayudan a determinar las relaciones existentes entre diferentes rubros de los estados financieros

Práctica 2: Simón dice

Biografía lingüística

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Componente com_weblinks para listados de enlaces web a modo de directorio en Joomla. (CU00442A)

TUTORIAL. Edición de contenido y creación de entradas y páginas Wordpress

GOOGLE NOTICIAS Y ALERTAS

Tutorial: Cuento Aristotélico

MATERIAL 2 EXCEL 2007

Programación Orientada a Objetos en Java

Programa Presupuestos de Sevillana de Informática.

Descarga e instalación de Visual Basic. Entorno de programación (IDE). Visual Studio (CU00304A)

CUADERNILLOS DE CAPACITACIÓN PARA PEQUEÑOS SISTEMAS DE AGUA POTABLE

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Impress : Programa de presentaciones de OpenOffice.

Módulo 8: Ofimática básica. Unidad didáctica 4: Como obtener ayuda en Word. Procesador de textos: Word

El proceso de edición digital en Artelope y CTCE

Versión 1.0 MANUAL DEL USUARIO

En siguiente enlace encontraréis información sobre los tipos de colegios y escuelas a los que puede asistir vuestra hija o hijo sordo.

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

LECCIÓN 10 DASHBOARD. Cómo añadir Gráficos al Dashboard?

Bioética y toma de decisiones en políticas públicas

Teclado sobre una PDA para Personas con Parálisis Cerebral

Creación de una página web accesible sencilla

Modelos y Bases de Datos

BÚSQUEDA AVANZADA EN INTERNET

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Solo por ser auxiliar administrativo de un centro de salud del SERMAS tienes en tus manos dos herramientas muy poderosas para desobedecer;

Semana Empecemos! Qué sabes de...? El reto es... Vamos al grano. Excel. Parte II

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

MANUAL DE USUARIO CONTROL LOGÍSTICO DE TIEMPOS

Transcripción:

APRENDERAPROGRAMAR.COM CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript desde cero Fecha revisión: 2029 Resumen: Entrega nº44 del Tutorial básico JavaScript desde cero. Autor: César Krall

CLASS JAVASCRIPT Las personas que están aprendiendo JavaScript y han programadoo previamente en otros lenguajes tradicionales como Java, C++, Visual Basic, etc. usando programació ón orientada a objetos, buscan con frecuencia las clases (class) en JavaScript. Pero tal y como indica la especificación oficial, JavaScript no usa clasess como lo hacen C++, Smalltalk o Java, aunque sí permita la creación de objetos. Al igual que muchas personas buscan class en JavaScript, también buscan que el comportamiento de JavaScript se asemejee al de otros lenguajes, y la verdadd es que JavaScript tiene en gran medida un comportamiento distinto al de lenguajes tradicionales populares como Java. El uso de términos comunes entre JavaScript y otros lenguajes, y el intento por programar en JavaScript como se haría en otros lenguajes, ha provocado que exista cierta confusión terminológica y con frecuencia errores de diseño o de concepto a la hora de concebir la programación con JavaScript. Por tanto si has programado previamente con lenguajes como C++ ó Java, te daremos la recomendación de que no supongas que JavaScript se va a comportar igual que estoss lenguajes. JavaScript se dice que es un lenguaje orientado a objetos que sigue un paradigma diferentee de otros lenguajes como Java, al paradigma de JavaScript se le llama programación basada en prototipos o programación basadaa en instancias. En la programación basada en prototipos no existen las clases tal y como existen en otros lenguajes, ni existe la herencia tal y como existe en otros lenguajes, aunque sí podemos encontrar ciertas similitudes. Algunos expertos consideran que JavaScript es el lenguaje más incomprendido entre todos los existentes, porque pocos programadores conocen bien su filosofía y potencialidad. Nosotross a lo largo del curso estamos tratando de comprender JavaScript, y seguiremos en ello a lo largo de los próximos apartados. DEFINICIÓN DE OBJETO Ya hemos hablado sobre objetos y tenemos una idea bastante clara de lo que son. Vamos ahora a dar una definición un poco más académica: <<Un objeto es una estructura de datos que posee un nombre y que está formadoo por contenedores de información que pueden albergarr otros objetos, valores primitivos o funciones. Un objeto pertenece al tipo de dato Object de JavaScript. >> A los objetos y valores primitivos que alberga un objeto los solemos llamar propiedades, mientras que a las funciones que alberga un objeto las llamamos métodos, de ahí que muchas veces se diga que un objeto es una colección de propiedades y métodos.

Casi todo en JavaScript son objetos. Pero no todo. No son objetos los datos que son tipos primitivos: String, Number, Boolean, Null, Undefined. No obstante, existen tipos objeto equivalentes a los tipos primitivos. Por ejemplo, podemos crear un String como tipo primitivo o como objeto usando: var cadena = 'aprenderaprogramar.com'; // Tipo primitivo var cadenaob = new String ('aprenderaprogramar.com'); // Objeto Un tipo primitivo se considera un tipo de dato simple: contiene una información simple. En cambio un objeto es un tipo de datos complejo, que puede albergar gran cantidad de información de distinta naturaleza. OBJETOS EN EL ENTORNO DE JAVASCRIPT Y OBJETOS DE USUARIO Hemos visto cómo crear un objeto donde nosotros definimos sus propiedades y métodos. Pero existen objetos que son predefinidos por JavaScript y por tanto el navegador los reconoce sin necesidad de que nosotros los creemos. Objeto predefinido Objeto global Object Function Array String Boolean Number Math Date RegExp JSON Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError Utilidad Objeto único y global, existente antes de que comience la ejecución de código. window suele considerarse que es el objeto global. relacionadas con objetos relacionadas con funciones relacionadas con arrays relacionadas con strings relacionadas con booleanos relacionadas con números Facilita el uso de funciones y posibilidades matemáticas Facilita el trabajo con fechas Permite trabajar con expresiones regulares para reconocer fragmentos de cadenas o patrones presentes en cadenas Permite trabajar con el formato de datos JSON Objetos que permiten controlar y obtener información sobre errores

Escribe por ejemplo alert ('El valor de number max value es ' + Number.MAX_VALUE); Comprobarás que te devuelve un resultado del tipo El valor de number max value es 1.7976931348623157e+308. Por qué podemos invocar Number.MAX_VALUE si no hemos definido el objeto Number ni sus propiedades y métodos? Porque este objeto, al igual que otros, son objetos predefinidos de JavaScript. Los objetos predefinidos de JavaScript nos resultarán muy útiles para distintos cometidos. Por ejemplo el objeto Math nos permite realizar cálculos matemáticos u obtener números pseudoaleatorios. Prueba por ejemplo a hacer que se muestren varios números aleatorios con alert(math.random()); Todo objeto JavaScript (incluido las funciones) se considera que son instancias del objeto Object, y debido a ello heredan propiedades y métodos de Object. Si no tienes claro qué significa que exista herencia no te preocupes pues lo iremos viendo a lo largo del curso. Te recomendamos que leas esto: herencia en POO, sólo para tener una idea de lo que significa herencia. window, el objeto global, tiene sus propiedades y métodos. La función que venimos usando para mostrar mensajes por pantalla, alert, es un método de window. Cuando escribimos alert('hola'); en realidad estamos invocando window.alert('hola'); Es decir, alert y window.alert son lo mismo para el navegador. El hecho de que no sea necesario escribir window cuando escribimos alert obedece a que si se invoca una función que no ha sido definida de otra manera, se considera que es un método del objeto global. Prueba este código y comprueba sus resultados. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html><head><title>ejemplo aprenderaprogramar.com</title><meta charset="utf-8"> <script type="text/javascript"> function ejemploobjetos() { var texto = 'Aprende a programar'; window.alert('alert es un método del objeto global window'); window.alert(texto); </script> </head> <body><div id="cabecera"><h2>cursos aprenderaprogramar.com</h2><h3>ejemplos JavaScript</h3></div> <div style="color:blue;" id ="pulsador" onclick="ejemploobjetos()"> Probar </div> </body> </html> JavaScript permite definir tipos de objetos y crear instancias de objetos de diferentes maneras y esto ha creado algo de confusión entre los programadores. Otros lenguajes tienen una sola manera de hacer estas cosas, en cambio JavaScript tiene varias. Esto resulta molesto para muchos programadores, sobre todo cuando tienen que revisar código creado por otras personas. La ventaja de esta existencia de múltiples formas sintácticas para hacer lo mismo es que cada programador puede elegir la que le resulte más cómoda o conveniente, y el inconveniente es la falta de uniformidad en el código desarrollado por distintos programadores y la necesidad de conocer esas múltiples formas para poder revisar código no creado por uno mismo.

Ya conocemos una de las formas de definir un tipo de objeto: function nombredeltipodeobjeto (par1, par2,, parn) { this.nombrepropiedad1 = valorpropiedad1; this.nombrepropiedad2 = valorpropiedad2; this.método1 = function () { código. this.método2 = function (param1, param2,, paramn) { código Como alternativa tenemos esta otra forma: function nombredeltipodeobjeto (par1, par2,, parn) { this.nombrepropiedad1 = valorpropiedad1; this.nombrepropiedad2 = valorpropiedad2; this.método1 = nombrefuncion1; this.método2 = nombrefuncion2; function nombrefuncion1 (par1, par2,, parn) { código function nombrefuncion2 (par1, par2,, parn) { código En esta forma de definición lo que antes eran funciones anónimas internas, ahora se han convertido en funciones con nombre externas. Fíjate que this.método1 = nombrefuncion1; únicamente define el nombre de la función que se ejecutará cuando se llame al método. En el nombre de la función no se incluyen paréntesis, únicamente el nombre. La función externa reconoce a que se invoca una propiedad del objeto si se incluye this.nombrepropiedad dentro de su código. Igualmente para los métodos. Prueba este código y comprueba sus resultados (que deben ser 14, 14 y 10). <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <title>ejemplo aprenderaprogramar.com</title> <meta charset="utf-8"> <script type="text/javascript"> function objetoserie(unarray) { this.nombre = 'Nombre del objeto'; this.contenidoarray = unarray; this.suma = obtenersuma;

function obtenersuma() { var suma=0; for (var i=0; i<this.contenidoarray.length; i++){ suma = suma + this.contenidoarray[i]; return suma; function ejemploobjetos() { var suma = 0; var serie = [3, 2, 9]; for (var i=0; i<serie.length; i++){ suma = suma + serie[i]; alert ('La suma de los números visto como array simple es: ' + suma); serieob = new objetoserie(serie); alert ('La suma de los números visto como objeto es: ' + serieob.suma()); otroobjeto = new objetoserie([2,1,3,4]); alert ('La suma para otro objeto es: ' + otroobjeto.suma()); </script></head> <body><div id="cabecera"><h2>cursos aprenderaprogramar.com</h2><h3>ejemplos JavaScript</h3></div> <div style="color:blue;" id ="pulsador" onclick="ejemploobjetos()"> Probar </div> </body></html> El problema de usar este método basado en funciones auxiliares definidas externamente es que dichas funciones son accesibles no sólo desde objetos del tipo definido, sino también como funciones normales. Además, al crearse muchos métodos basados en funciones externas normalmente se termina creando un conflicto de nombres: más de una función auxiliar externa con el mismo nombre, de modo que el navegador no sabe qué función es la que debe tomar entre las dos (o más) con el mismo nombre. Por ello recomendamos seguir la definición de tipos de objeto basada en funciones internas antes que este otro método (que también es muy popular). EJERCICIO Define un tipo de objeto Medico en JavaScript que tenga como propiedades: nombre (String), personascuradas (número entero), especialidad (String) y como métodos un método denominado curarpersona y otro método denominado mostrardatos. El método curarpersona deberá añadir una unidad al valor de la propiedad personascuradas y el método mostrardatos deberá mostrar los datos el médico. Por ejemplo, El médico se llama Juan Eslava, su especialidad es traumatología y lleva curadas 8 personas. Crea dos objetos del tipo definido, e invoca sus métodos para comprobar que funcionan correctamente. Crea las dos alternativas de código: métodos con funciones internas anónimas o métodos con referencia a funciones externas. Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU01145E Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&itemid=206