Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:js [2022/11/03 08:36] alfred [Maps] |
wiki2:js [2022/11/03 16:21] (actual) |
||
|---|---|---|---|
| Línea 1090: | Línea 1090: | ||
| Las reglas (rules) son un array de objetos js con varias propiedades. La primera es una expresión regular correspondiente a los nombres de ficheros, ''test'', si se valida se ejecutará una serie de "comandos" dentro del array de ''use''. | Las reglas (rules) son un array de objetos js con varias propiedades. La primera es una expresión regular correspondiente a los nombres de ficheros, ''test'', si se valida se ejecutará una serie de "comandos" dentro del array de ''use''. | ||
| + | |||
| + | ===== More JavaScript ===== | ||
| + | ==== Default arguments on functions ==== | ||
| + | <code javascript> | ||
| + | const defaultPerson = { | ||
| + | name: { | ||
| + | first: "Shane", | ||
| + | last: "McConkey" | ||
| + | }, | ||
| + | favActivity: "skiing"}; | ||
| + | function logActivity(person = defaultPerson) { | ||
| + | console.log(`${person.name.first} loves ${person.favActivity}`); | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | ==== Arrow functions ==== | ||
| + | This: | ||
| + | <code javascript> | ||
| + | const lordify = function(firstName) { | ||
| + | return `${firstName} of Canterbury`; | ||
| + | }; | ||
| + | </code> | ||
| + | Is the same than this: | ||
| + | <code javascript> | ||
| + | const lordify = firstName => `${firstName} of Canterbury`; | ||
| + | </code> | ||
| + | Arrow functions protect the scope of this. | ||
| + | |||
| + | For example this fails: | ||
| + | <code javascript> | ||
| + | const tahoe = { | ||
| + | mountains: ["Freel", "Rose", "Tallac", "Rubicon", "Silver"], | ||
| + | print: function(delay = 1000) { | ||
| + | console.log(this); // Window {} | ||
| + | setTimeout(function() { | ||
| + | console.log(this.mountains.join(", ")); | ||
| + | }, delay); | ||
| + | }}; | ||
| + | tahoe.print(); // Uncaught TypeError: Cannot read property 'join' of undefined | ||
| + | </code> | ||
| + | But this not: | ||
| + | <code javascript> | ||
| + | const tahoe = { | ||
| + | mountains: ["Freel", "Rose", "Tallac", "Rubicon", "Silver"], | ||
| + | print: function(delay = 1000) { | ||
| + | setTimeout(() => { | ||
| + | console.log(this.mountains.join(", ")); | ||
| + | }, delay); | ||
| + | } | ||
| + | }; | ||
| + | tahoe.print(); // Freel, Rose, Tallac, Rubicon, Silver | ||
| + | </code> | ||