Introducció
En aquest tema, explorarem els mètodes d'objecte i la paraula clau this en JavaScript. Els mètodes són funcions que es defineixen dins d'un objecte i poden accedir a les propietats de l'objecte mitjançant la paraula clau this.
Objectius
- Entendre què són els mètodes d'objecte.
- Aprendre a definir i utilitzar mètodes dins d'un objecte.
- Comprendre el comportament de la paraula clau
thisdins dels mètodes.
Conceptes Clau
Què són els Mètodes d'Objecte?
Els mètodes d'objecte són funcions que es defineixen com a propietats d'un objecte. Aquests mètodes poden accedir i manipular altres propietats de l'objecte.
La Paraula Clau this
La paraula clau this fa referència a l'objecte des del qual es crida el mètode. És una manera de referir-se a l'objecte actual dins del mètode.
Exemples Pràctics
Definició d'un Mètode d'Objecte
let persona = {
nom: "Joan",
edat: 30,
saluda: function() {
console.log("Hola, em dic " + this.nom + " i tinc " + this.edat + " anys.");
}
};
persona.saluda(); // Sortida: Hola, em dic Joan i tinc 30 anys.Explicació
- Objecte
persona: Té propietatsnomiedat. - Mètode
saluda: És una funció que utilitzathisper accedir a les propietatsnomiedatde l'objectepersona.
La Paraula Clau this en Funcions Fletxa
Les funcions fletxa (arrow functions) no tenen el seu propi valor de this. En canvi, hereten el valor de this del seu context de definició.
let persona = {
nom: "Joan",
edat: 30,
saluda: () => {
console.log("Hola, em dic " + this.nom + " i tinc " + this.edat + " anys.");
}
};
persona.saluda(); // Sortida: Hola, em dic undefined i tinc undefined anys.Explicació
- Funció Fletxa
saluda: No té el seu propithis, per tant,this.nomithis.edatsónundefined.
Solució amb Funció Normal
Per evitar aquest problema, utilitzem funcions normals per als mètodes d'objecte.
let persona = {
nom: "Joan",
edat: 30,
saluda: function() {
console.log("Hola, em dic " + this.nom + " i tinc " + this.edat + " anys.");
}
};
persona.saluda(); // Sortida: Hola, em dic Joan i tinc 30 anys.Exercicis Pràctics
Exercici 1: Crear un Objecte amb Mètodes
Crea un objecte cotxe amb les propietats marca, model i any. Afegeix un mètode descripcio que imprimeixi una descripció del cotxe utilitzant this.
Solució
let cotxe = {
marca: "Toyota",
model: "Corolla",
any: 2020,
descripcio: function() {
console.log("Aquest cotxe és un " + this.marca + " " + this.model + " de l'any " + this.any + ".");
}
};
cotxe.descripcio(); // Sortida: Aquest cotxe és un Toyota Corolla de l'any 2020.Exercici 2: Utilitzar Funcions Fletxa i this
Modifica el mètode descripcio de l'objecte cotxe per utilitzar una funció fletxa. Observa què passa amb el valor de this.
let cotxe = {
marca: "Toyota",
model: "Corolla",
any: 2020,
descripcio: () => {
console.log("Aquest cotxe és un " + this.marca + " " + this.model + " de l'any " + this.any + ".");
}
};
cotxe.descripcio(); // Quina és la sortida?Solució
let cotxe = {
marca: "Toyota",
model: "Corolla",
any: 2020,
descripcio: () => {
console.log("Aquest cotxe és un " + this.marca + " " + this.model + " de l'any " + this.any + ".");
}
};
cotxe.descripcio(); // Sortida: Aquest cotxe és un undefined undefined de l'any undefined.Retroalimentació sobre Errors Comuns
- Error Comú 1: Utilitzar funcions fletxa per a mètodes d'objecte, el que resulta en
thisindefinit. - Error Comú 2: Oblidar-se de fer servir
thisper accedir a les propietats de l'objecte dins d'un mètode.
Resum
En aquesta secció, hem après sobre els mètodes d'objecte i la paraula clau this en JavaScript. Hem vist com definir mètodes dins d'un objecte i com utilitzar this per accedir a les propietats de l'objecte. També hem explorat el comportament de this en funcions fletxa i hem practicat amb exercicis per reforçar aquests conceptes.
En el següent tema, explorarem els arrays: conceptes bàsics i mètodes.
JavaScript: De Principiant a Avançat
Mòdul 1: Introducció a JavaScript
- Què és JavaScript?
- Configuració del Teu Entorn de Desenvolupament
- El Teu Primer Programa en JavaScript
- Sintaxi i Conceptes Bàsics de JavaScript
- Variables i Tipus de Dades
- Operadors Bàsics
Mòdul 2: Estructures de Control
- Declaracions Condicionals
- Bucles: for, while, do-while
- Declaracions Switch
- Gestió d'Errors amb try-catch
Mòdul 3: Funcions
- Definició i Crida de Funcions
- Expressions de Funció i Funcions Fletxa
- Paràmetres i Valors de Retorn
- Àmbit i Tancaments
- Funcions d'Ordre Superior
Mòdul 4: Objectes i Arrays
- Introducció als Objectes
- Mètodes d'Objecte i Paraula Clau 'this'
- Arrays: Conceptes Bàsics i Mètodes
- Iteració sobre Arrays
- Desestructuració d'Arrays
Mòdul 5: Objectes i Funcions Avançades
- Prototips i Herència
- Classes i Programació Orientada a Objectes
- Mòduls i Importació/Exportació
- JavaScript Asíncron: Callbacks
- Promeses i Async/Await
Mòdul 6: El Model d'Objectes del Document (DOM)
- Introducció al DOM
- Selecció i Manipulació d'Elements del DOM
- Gestió d'Esdeveniments
- Creació i Eliminació d'Elements del DOM
- Gestió i Validació de Formularis
Mòdul 7: APIs del Navegador i Temes Avançats
- Emmagatzematge Local i de Sessió
- Fetch API i AJAX
- WebSockets
- Service Workers i Aplicacions Web Progressives (PWAs)
- Introducció a WebAssembly
Mòdul 8: Proves i Depuració
- Depuració de JavaScript
- Proves Unitàries amb Jest
- Proves d'Integració
- Proves de Cap a Cap amb Cypress
Mòdul 9: Rendiment i Optimització
- Optimització del Rendiment de JavaScript
- Gestió de Memòria
- Manipulació Eficient del DOM
- Càrrega Per Mandat i Divisió de Codi
Mòdul 10: Frameworks i Llibreries de JavaScript
- Introducció a React
- Gestió d'Estat amb Redux
- Conceptes Bàsics de Vue.js
- Conceptes Bàsics d'Angular
- Triar el Framework Adequat
