const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName: function() {
return this.firstName + " " +
this.lastName;
}
};
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>The JavaScript <i>this</i> Keyword</h1>
<p>In this example, <b>this</b> refers to the <b>person</b> object.</p>
<p>Because <b>fullName</b> is a method of the person object.</p>
<p id="demo"></p>
<script>
// Create an object:
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
// Display data from the object:
document.getElementById("demo").innerHTML = person.fullName();
</script>
</body>
</html>
I JavaScript refererer dette
søgeordet til et objekt.
Hvilket objekt afhænger af, hvordan dette
påkaldes (bruges eller kaldes).
dette
søgeordet refererer til forskellige objekter afhængigt af hvordan det bruges:
I en objektmetode henviser dette
til objektet.
Alene henviser dette
til det globale objekt.
I en funktion henviser dette
til det globale objekt.
I en funktion, i streng tilstand, er dette
udefineret
.
I en begivenhed henviser dette
til det element, der modtog begivenheden.
Metoder som call()
, apply()
og bind()
kan henvise dette
til ethvert objekt.
dette
er ikke en variabel. Det er et nøgleord. Du kan ikke ændre værdien af denne
JavaScript denne selvstudium
JavaScript-metoder er handlinger, der kan udføres på objekter.
En JavaScript metode er en egenskab, der indeholder en funktion definition.
John
Doe
50
blå
function() {return dette.fornavn + " " + dette.efternavn;}
Metoder er funktioner gemt som objektegenskaber.
Du får adgang til en objektmetode med følgende syntaks:
objectName.methodName()
Du vil typisk beskrive fullName() som en metode for personobjektet, og fuldnavn som egenskab.
Egenskaben fullName vil køre (som en funktion), når den påkaldes med().
Dette eksempel får adgang til fuldnavn() metoden for et personobjekt:
name = person.fullName();
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>Creating and using an object method.</p>
<p>A method is actually a function definition stored as a property value.</p>
<p id="demo"></p>
<script>
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
document.getElementById("demo").innerHTML = person.fullName();
</script>
</body>
</html>
Hvis du får adgang til fullName egenskaben uden(), den returnerer funktionsdefinitionen:
name = person.fullName;
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>An object method is a function definition stored as a property value.</p>
<p>If you access it without (), it will return the function definition:</p>
<p id="demo"></p>
<script>
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
document.getElementById("demo").innerHTML = person.fullName;
</script>
</body>
</html>
Det er nemt at tilføje en ny metode til et objekt:
person.name = function () {
return this.firstName + " " + this.lastName;
};
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
};
person.name = function() {
return this.firstName + " " + this.lastName;
};
document.getElementById("demo").innerHTML =
"My father is " + person.name();
</script>
</body>
</html>
Dette eksempel bruger toUpperCase()
-metoden for String-objektet til at konvertere en tekst til store bogstaver:
let message = "Hello world!";
let x = message.toUpperCase();
Værdien af x, efter udførelse af koden ovenfor vil være:
HELLO WORLD!
person.name = function () {
return (this.firstName + " " + this.lastName).toUpperCase();
};
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
};
person.name = function() {
return (this.firstName + " " + this.lastName).toUpperCase();
};
document.getElementById("demo").innerHTML =
"My father is " + person.name();
</script>
</body>
</html>