JS Tutoriaal

JS TUIS JS Inleiding JS Waarheen JS Uitset JS Verklarings JS sintaksis JS Kommentaar JS veranderlikes JS Laat JS Konst JS-operateurs JS Rekenkunde JS Opdrag JS datatipes JS Funksies JS Voorwerpe JS Events JS Strings JS String Metodes JS String Soek JS String Templates JS nommers JS-nommermetodes JS Skikkings JS Skikking Metodes JS Array Sorteer JS Skikking Iterasie JS Array Konst JS Datums JS Datum Formate JS Datum Kry Metodes JS Datum Stel Metodes JS Wiskunde JS Random JS Booleans JS Vergelykings JS Voorwaardes JS Skakelaar JS Loop Vir JS Loop For In JS Loop Vir Van JS Loop Terwyl JS Break JS Iterables JS-stelle JS Kaarte JS tipe JS Tipe Omskakeling JS Bitwise JS RegExp JS foute JS Bestek JS Hysing JS Streng modus JS hierdie sleutelwoord JS Arrow Funksie JS Klasse JS JSON JS Ontfouting JS Stylgids JS Beste Praktyke JS foute JS prestasie JS Voorbehou Woorde

JS weergawes

JS weergawes JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS Geskiedenis

JS Voorwerpe

Voorwerpdefinisies Voorwerp Eienskappe Voorwerp Metodes Voorwerp vertoon Voorwerptoebehore Voorwerpkonstrukteurs Voorwerpprototipes Object Iterables Voorwerpstelle Voorwerpkaarte Voorwerpverwysing

JS Funksies

Funksie definisies Funksie parameters Funksie Aanroep Funksie oproep Funksie Pas toe Funksie sluitings

JS Klasse

Klasintro Klas Erfenis Klas Staties

JS Async

JS Terugbelle JS Asynchroon JS Beloftes JS Async/Wag

JS HTML DOM

DOM Inleiding DOM Metodes DOM-dokument DOM Elemente DOM HTML DOM-vorms DOM CSS DOM-animasies DOM-geleenthede DOM Gebeurtenis Luisteraar DOM-navigasie DOM nodusse DOM Versamelings DOM Node lyste

JS Browser BOM

JS venster JS skerm JS ligging JS Geskiedenis JS Navigator JS Popup Alert JS Tydsberekening JS koekies

JS Web API's

Web API Inleiding Webvorms API Webgeskiedenis API Webberging API Webwerker API Web haal API Web Geolocation API

JS AJAX

AJAX Intro AJAX XMLHttp AJAX-versoek AJAX-reaksie AJAX XML-lêer AJAX PHP AJAX ASP AJAX-databasis AJAX toepassings AJAX voorbeelde

JS JSON

JSON Inleiding JSON-sintaksis JSON vs XML JSON-datatipes JSON Ontleed JSON Stringify JSON-voorwerpe JSON-skikkings JSON-bediener JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery keurders jQuery HTML jQuery CSS jQuery DOM

JS grafika

JS grafika JS Canvas JS Plot JS Chart.js JS Google Chart JS D3.js

JS Voorbeelde

JS Voorbeelde JS HTML DOM JS HTML-invoer JS HTML-voorwerpe JS HTML-geleenthede JS Blaaier JS Redakteur JS Oefeninge JS Vasvra JS Sertifikaat

JS Verwysings

JavaScript-voorwerpe HTML DOM-voorwerpe


JavaScript -funksie-aanroeping


Die kode binne 'n JavaScript functionsal uitgevoer word wanneer "iets" dit oproep.


Aanroep van 'n JavaScript-funksie

Die kode binne 'n funksie word nie uitgevoer wanneer die funksie gedefinieer is nie .

Die kode binne 'n funksie word uitgevoer wanneer die funksie opgeroep word .

Dit is algemeen om die term " roep 'n funksie " te gebruik in plaas van " roep 'n funksie op ".

Dit is ook algemeen om te sê "roep 'n funksie aan", "begin 'n funksie" of "voer 'n funksie uit".

In hierdie tutoriaal sal ons invoke gebruik , want 'n JavaScript-funksie kan opgeroep word sonder om opgeroep te word.


Aanroep van 'n funksie as 'n funksie

Voorbeeld

function myFunction(a, b) {
  return a * b;
}
myFunction(10, 2);           // Will return 20

Die funksie hierbo behoort aan geen voorwerp nie. Maar in JavaScript is daar altyd 'n standaard globale voorwerp.

In HTML is die standaard globale voorwerp die HTML-bladsy self, dus die funksie hierbo "behoort" aan die HTML-bladsy.

In 'n blaaier is die bladsy-objek die blaaiervenster. Die funksie hierbo word outomaties 'n vensterfunksie.

myFunction() en window.myFunction() is dieselfde funksie:

Voorbeeld

function myFunction(a, b) {
  return a * b;
}
window.myFunction(10, 2);    // Will also return 20

Dit is 'n algemene manier om 'n JavaScript-funksie op te roep, maar nie 'n baie goeie praktyk nie.
Globale veranderlikes, metodes of funksies kan maklik naamkonflikte en foute in die globale voorwerp skep.



Die hierdie sleutelwoord

In JavaScript is die ding genaamd this, die voorwerp wat die huidige kode "besit".

Die waarde van this, wanneer dit in 'n funksie gebruik word, is die voorwerp wat die funksie "besit".

Let daarop dat thisdit nie 'n veranderlike is nie. Dit is 'n sleutelwoord. Jy kan nie die waarde van verander nie this.

Wenk: Lees meer oor die thissleutelwoord by JS hierdie sleutelwoord .


Die globale voorwerp

Wanneer 'n funksie sonder 'n eienaarobjek geroep word, word die waarde van this die globale objek.

In 'n webblaaier is die globale voorwerp die blaaiervenster.

Hierdie voorbeeld gee die vensterobjek terug as die waarde van this:

Voorbeeld

let x = myFunction();            // x will be the window object

function myFunction() {
  return this;
}

Om 'n funksie as 'n globale funksie aan te roep, veroorsaak dat die waarde hiervan die globale objek is.
Deur die vensterobjek as 'n veranderlike te gebruik, kan u program maklik ineenstort.


Aanroep van 'n funksie as 'n metode

In JavaScript kan jy funksies as objekmetodes definieer.

Die volgende voorbeeld skep 'n objek ( myObject ), met twee eienskappe ( voornaam en van ), en 'n metode ( volle Naam ):

Voorbeeld

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();         // Will return "John Doe"

Die fullName -metode is 'n funksie. Die funksie behoort aan die voorwerp. myObject is die eienaar van die funksie.

Die ding wat genoem word this, is die voorwerp wat die JavaScript-kode "besit". this In hierdie geval is die waarde van myObject .

Toets dit! Verander die volle naam metode om die waarde van terug te gee this:

Voorbeeld

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

// This will return [object Object] (the owner object)
myObject.fullName();

Deur 'n funksie as 'n objekmetode aan te roep, veroorsaak dat die waarde van this die objek self is.


Aanroep van 'n funksie met 'n funksie-konstruktor

newAs 'n funksie-aanroeping met die sleutelwoord voorafgegaan word , is dit 'n konstruktor-aanroep.

Dit lyk of jy 'n nuwe funksie skep, maar aangesien JavaScript-funksies voorwerpe is, skep jy eintlik 'n nuwe voorwerp:

Voorbeeld

// This is a function constructor:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

// This creates a new object
const myObj = new myFunction("John", "Doe");

// This will return "John"
myObj.firstName;

'n Konstruktor-aanroeping skep 'n nuwe voorwerp. Die nuwe voorwerp erf die eienskappe en metodes van sy konstruktor.

Die thissleutelwoord in die konstruktor het nie 'n waarde nie.
Die waarde van thissal die nuwe objek wees wat geskep word wanneer die funksie opgeroep word.