Výukový program JS

JS HOME Úvod do JS JS Kam vést Výstup JS JS prohlášení Syntaxe JS Komentáře JS JS proměnné JS Let JS Const Operátoři JS JS aritmetika Zadání JS JS datové typy Funkce JS JS objekty Události JS JS struny JS String Methods JS String Search Šablony řetězců JS JS čísla Metody čísel JS JS Arrays Metody JS Array JS Array Sort Iterace pole JS JS Array Const JS Termíny Formáty data JS JS metody získávání data JS metody nastavení data JS Math JS Náhodný JS Booleans JS Srovnání Podmínky JS Přepínač JS JS Loop For JS Loop For In JS Loop For Of Zatímco JS Loop JS Break JS Iterables Sady JS Mapy JS Typ JS Konverze typu JS JS Bitwise JS RegExp Chyby JS Rozsah JS JS Zvedací zařízení Přísný režim JS JS toto klíčové slovo Funkce šipky JS JS třídy JS JSON Ladění JS Průvodce stylem JS JS Best Practices Chyby JS Výkon JS JS Reserved Words

Verze JS

Verze JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Historie JS

JS objekty

Definice objektů Vlastnosti objektu Objektové metody Zobrazení objektu Objektové přístupové objekty Konstruktory objektů Prototypy objektů Iterovatelné objekty Sady objektů Mapy objektů Reference objektu

Funkce JS

Definice funkcí Funkční parametry Vyvolání funkce Volání funkce Funkce Použít Funkční uzávěry

JS třídy

Úvod do třídy Třídní dědičnost Třída Statická

JS Async

JS zpětná volání JS asynchronní JS Sliby JS Async/Await

JS HTML DOM

Úvod do DOM Metody DOM Dokument DOM Prvky DOM DOM HTML Formuláře DOM DOM CSS DOM animace Události DOM DOM Event Listener Navigace DOM DOM uzly Kolekce DOM Seznamy uzlů DOM

Kusovník prohlížeče JS

Okno JS Obrazovka JS Umístění JS Historie JS JS Navigator Popup Alert JS Časování JS Soubory cookie JS

Webová rozhraní API JS

Úvod do webového rozhraní API Web Forms API Webová historie API Web Storage API Web Worker API Web Fetch API Web Geolocation API

JS AJAX

Úvod do AJAXu AJAX XMLHttp Požadavek AJAX Odpověď AJAX Soubor XML AJAX AJAX PHP AJAX ASP Databáze AJAX Aplikace AJAX Příklady AJAX

JS JSON

Úvod do JSON Syntaxe JSON JSON vs XML Datové typy JSON Analýza JSON JSON Stringify Objekty JSON Pole JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Selektory jQuery HTML jQuery jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

Příklady JS

Příklady JS JS HTML DOM Vstup HTML JS JS HTML objekty JS HTML události Prohlížeč JS Editor JS Cvičení JS JS kvíz Certifikát JS

JS Reference

Objekty JavaScriptu HTML DOM objekty


Vyvolání funkce JavaScript


Kód uvnitř JavaScriptu functionse spustí, když jej „něco“ vyvolá.


Vyvolání funkce JavaScriptu

Kód uvnitř funkce se nespustí, když je funkce definována .

Kód uvnitř funkce se provede, když je funkce vyvolána .

Je běžné používat termín „ zavolat funkci “ místo „ vyvolat funkci “.

Je také běžné říkat „zavolat funkci“, „spustit funkci“ nebo „vykonat funkci“.

V tomto tutoriálu použijeme invoke , protože funkci JavaScript lze vyvolat bez volání.


Vyvolání funkce jako funkce

Příklad

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

Výše uvedená funkce nepatří žádnému objektu. Ale v JavaScriptu je vždy výchozí globální objekt.

V HTML je výchozím globálním objektem samotná stránka HTML, takže funkce výše „patří“ stránce HTML.

V prohlížeči je objektem stránky okno prohlížeče. Výše uvedená funkce se automaticky stane funkcí okna.

myFunction() a window.myFunction() je stejná funkce:

Příklad

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

Toto je běžný způsob vyvolání funkce JavaScriptu, ale není to příliš dobrý postup.
Globální proměnné, metody nebo funkce mohou snadno vytvářet konflikty jmen a chyby v globálním objektu.



Toto klíčové slovo

V JavaScriptu je věc zvaná this, objekt, který „vlastní“ aktuální kód.

Hodnota this, je-li použita ve funkci, je objekt, který „vlastní“ funkci.

Všimněte si, že thisto není proměnná. Je to klíčové slovo. Nemůžete změnit hodnotu this.

Tip: Přečtěte si více o thisklíčovém slově na JS this Keyword .


Globální objekt

Když je funkce volána bez objektu vlastníka, hodnota this se stane globálním objektem.

Ve webovém prohlížeči je globálním objektem okno prohlížeče.

Tento příklad vrátí objekt okna jako hodnotu this:

Příklad

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

function myFunction() {
  return this;
}

Vyvolání funkce jako globální funkce způsobí, že tato hodnota bude globálním objektem.
Použití objektu okna jako proměnné může snadno spadnout váš program.


Vyvolání funkce jako metody

V JavaScriptu můžete definovat funkce jako objektové metody.

Následující příklad vytvoří objekt ( myObject ) se dvěma vlastnostmi ( firstName a lastName ) a metodou ( fullName ):

Příklad

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

Metoda fullName je funkce. Funkce patří k objektu. myObject je vlastníkem funkce.

Věc zvaná this, je objekt, který „vlastní“ kód JavaScript. this V tomto případě je hodnota myObject .

Otestujte to! Změňte metodu fullName tak , aby vrátila hodnotu this:

Příklad

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

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

Vyvolání funkce jako objektové metody způsobí, že hodnotou this objektu je samotný objekt.


Vyvolání funkce pomocí konstruktoru funkcí

Je-li před vyvoláním funkce newklíčové slovo, jedná se o vyvolání konstruktoru.

Vypadá to, že vytvoříte novou funkci, ale protože funkce JavaScriptu jsou objekty, ve skutečnosti vytvoříte nový objekt:

Příklad

// 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;

Vyvolání konstruktoru vytvoří nový objekt. Nový objekt zdědí vlastnosti a metody od svého konstruktoru.

Klíčové thisslovo v konstruktoru nemá hodnotu.
Hodnota thiswill je nový objekt vytvořený při vyvolání funkce.