informatica:programacion:cursos:programacion_avanzada_javascript:notacion_objetos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:cursos:programacion_avanzada_javascript:notacion_objetos [2024/10/16 12:43] – [Métodos y propiedades simplificadas] tempwin | informatica:programacion:cursos:programacion_avanzada_javascript:notacion_objetos [2024/10/30 13:01] (actual) – [Propiedades con nombre dinámico] tempwin | ||
|---|---|---|---|
| Línea 124: | Línea 124: | ||
| En el caso del uso de funciones constructoras, | En el caso del uso de funciones constructoras, | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Cambio de Foo.prototype | + | |
| - | </ | + | |
| En la imagen anterior el valor de '' | En la imagen anterior el valor de '' | ||
| Línea 285: | Línea 283: | ||
| Se puede ver que '' | Se puede ver que '' | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Usando __proto__ en notación de objeto. | + | |
| - | </ | + | |
| ===== Propiedades con nombre dinámico ===== | ===== Propiedades con nombre dinámico ===== | ||
| Línea 299: | Línea 295: | ||
| Una vez se ha creado esa propiedad podemos acceder a ella con la notación de punto o de array, siendo ambas equivalentes: | Una vez se ha creado esa propiedad podemos acceder a ella con la notación de punto o de array, siendo ambas equivalentes: | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Propiedades dinámicas | + | |
| - | </ | + | |
| Línea 387: | Línea 381: | ||
| </ | </ | ||
| ===== DEMO: Novedades en notación de objetos ===== | ===== DEMO: Novedades en notación de objetos ===== | ||
| + | |||
| + | Repaso de las 4 novedades importantes de **ECMAScript 6** en notación de objetos. | ||
| + | |||
| + | Posibilidad de **especificar el prototipo** del objeto en notación del objeto a la vez que declaramos el objeto: | ||
| + | |||
| + | <code javascript> | ||
| + | var a = {name: " | ||
| + | |||
| + | var b = { | ||
| + | __proto__: a, | ||
| + | cursos: [" | ||
| + | } | ||
| + | |||
| + | b.name; // -> ' | ||
| + | </ | ||
| + | |||
| + | Antes no se podía hacer, era necesario el uso de '' | ||
| + | |||
| + | Otra de las novedades son las **propiedades con nombre dinámico**: | ||
| + | |||
| + | <code javascript> | ||
| + | var b = { | ||
| + | __proto__: a, | ||
| + | cursos: [" | ||
| + | [" | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Lo ejecutamos: | ||
| + | |||
| + | <code javascript> | ||
| + | b; // -> Object { cursos: Array[1], i_0.123412341234: | ||
| + | </ | ||
| + | |||
| + | En ECMAScript 5 podíamos hacer: | ||
| + | |||
| + | <code javascript> | ||
| + | b[" | ||
| + | </ | ||
| + | |||
| + | Pero no podíamos hacerlo en la declaración de un objeto. | ||
| + | |||
| + | Otra novedad más es una **sintaxis simplificada para declarar funciones**. | ||
| + | |||
| + | <code javascript> | ||
| + | var b = { | ||
| + | __proto__: a, | ||
| + | cursos: [" | ||
| + | [" | ||
| + | foo(p) {return p + 1} // No es necesario usar ' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Finalmente, otra característica nueva son los //shorthand properties names//: | ||
| + | |||
| + | <code javascript> | ||
| + | var url = " | ||
| + | |||
| + | var options = { | ||
| + | url, // en lugar de url: url | ||
| + | method: " | ||
| + | }); | ||
| + | </ | ||
informatica/programacion/cursos/programacion_avanzada_javascript/notacion_objetos.1729075409.txt.gz · Última modificación: por tempwin
