Reageer ES6 pylfunksies
Pyltjie funksies
Pyltjiefunksies laat ons toe om korter funksiesintaksis te skryf:
Voor:
hello = function() {
return "Hello World!";
}
Met pylfunksie:
hello = () => {
return "Hello World!";
}
Dit word korter! As die funksie net een stelling het, en die stelling gee 'n waarde terug, kan jy die hakies en die
return
sleutelwoord verwyder:
Pyltjiefunksies Retourwaarde by verstek:
hello = () => "Hello World!";
Let wel: Dit werk slegs as die funksie net een stelling het.
As jy parameters het, gee jy dit binne die hakies deur:
Pyltjiefunksie met parameters:
hello = (val) => "Hello " + val;
Trouens, as jy net een parameter het, kan jy die hakies ook oorslaan:
Word gesertifiseer!
$95 INSKRIF
Waarvan this
?
Die hantering van this
is ook anders in pylfunksies in vergelyking met gewone funksies.
Kortom, met pylfunksies is daar geen binding van
this
.
In gewone funksies het die this
sleutelwoord die voorwerp verteenwoordig wat die funksie genoem het, wat die venster, die dokument, 'n knoppie of wat ook al kan wees.
Met pylfunksies verteenwoordig die this
sleutelwoord altyd die voorwerp wat die pylfunksie gedefinieer het.
Kom ons kyk na twee voorbeelde om die verskil te verstaan.
Beide voorbeelde noem 'n metode twee keer, eers wanneer die bladsy laai, en weer eens wanneer die gebruiker 'n knoppie klik.
Die eerste voorbeeld gebruik 'n gewone funksie, en die tweede voorbeeld gebruik 'n pyltjie funksie.
Die resultaat wys dat die eerste voorbeeld twee verskillende voorwerpe (venster en knoppie) gee, en die tweede voorbeeld gee die Header-objek twee keer terug.
Voorbeeld
Met 'n gewone funksie, this
verteenwoordig die voorwerp wat die funksie genoem het:
class Header {
constructor() {
this.color = "Red";
}
//Regular function:
changeColor = function() {
document.getElementById("demo").innerHTML += this;
}
}
const myheader = new Header();
//The window object calls the function:
window.addEventListener("load", myheader.changeColor);
//A button object calls the function:
document.getElementById("btn").addEventListener("click", myheader.changeColor);
Voorbeeld
Met 'n pylfunksie, this
verteenwoordig die Kop-voorwerp, ongeag wie die funksie genoem het:
class Header {
constructor() {
this.color = "Red";
}
//Arrow function:
changeColor = () => {
document.getElementById("demo").innerHTML += this;
}
}
const myheader = new Header();
//The window object calls the function:
window.addEventListener("load", myheader.changeColor);
//A button object calls the function:
document.getElementById("btn").addEventListener("click", myheader.changeColor);
Onthou hierdie verskille wanneer jy met funksies werk. Soms is die gedrag van gereelde funksies wat jy wil hê, indien nie, gebruik pylfunksies.