När du skapar egna metoder (funktioner) i JavaScript finns det flera viktiga saker att tänka på både för kodkvalitet, prestanda och läsbarhet. Här kommer en strukturerad guide:
JavaScript har flera sätt att skapa funktioner/metoder:
function greet(name) {
return `Hej, ${name}`;
}
✅ Kan anropas före definitionen (hoisting). ❌ Kan bli förvirrande i stora filer.
const greet = function(name) {
return `Hej, ${name}`;
};
✅ Mer kontrollerad scope. ❌ Kan inte användas innan den definieras.
const greet = (name) => `Hej, ${name}`;
✅ Kort och modern syntax.
❌ Binder inte sitt eget this → viktigt i objekt/metoder.
const user = {
name: "Anna",
sayHello() {
return `Hej, jag heter ${this.name}`;
}
};
thisthis beroende på hur funktionen anropas.this bundet till omgivande scope.Exempel:
const obj = {
value: 10,
normal: function() { return this.value; },
arrow: () => this.value
};
console.log(obj.normal()); // 10
console.log(obj.arrow()); // undefined (eller globalt context)
👉 Tips: Använd vanliga funktioner i objekt/metoder, och arrow functions i callbacks.
function greet(name = "gäst") {
return `Hej, ${name}`;
}
console.log(greet()); // "Hej, gäst"
undefined.function printUser({name, age}) {
console.log(`${name} är ${age} år.`);
}
return för att lämna resultat.undefined.calculateSum, getUser).try/catch för funktioner som kan kasta fel.function parsejavascriptON(str) {
try {
return javascriptON.parse(str);
} catch (e) {
console.error("Ogiltig javascriptON:", e);
return null;
}
}
👉 Sträva efter pure functions där det går → enklare att testa/debugga.
async/await för bättre läsbarhet än then().async function fetchUser() {
const res = await fetch("/api/user");
return res.javascripton();
}
✅ Sammanfattning – att tänka på när du skapar egna metoder:
function, arrow, metod).this fungerar.try/catch).async/await för asynkrona operationer.