Samouczek JS

JS DOM Wprowadzenie do JS JS Dokąd Wyjście JS Oświadczenia JS Składnia JS Komentarze JS Zmienne JS JS Let JS Const Operatorzy JS Arytmetyka JS Zadanie JS Typy danych JS Funkcje JS Obiekty JS Wydarzenia JS JS Strings Metody ciągów JS Wyszukiwanie ciągów JS Szablony JS String Numery JS Metody liczbowe JS Tablice JS Metody macierzowe JS Sortowanie tablic JS Iteracja tablicy JS JS Array Const JS Daty Formaty daty JS JS Data Pobierz metody Metody ustawiania daty JS Matematyka JS JS losowo JS Booleans Porównania JS Warunki JS Przełącznik JS Pętla JS dla Pętla JS dla In Pętla JS dla Of Pętla JS, podczas gdy Przerwa JS Iterable JS Zestawy JS Mapy JS Typ JS Konwersja typu JS JS Bitwise JS RegExp Błędy JS Zakres JS JS Podnoszenie Tryb ścisły JS JS to słowo kluczowe Funkcja strzałki JS Klasy JS JS JSON Debugowanie JS Przewodnik po stylu JS Najlepsze praktyki JS Błędy JS Wydajność JS JS słowa zastrzeżone

Wersje JS

Wersje JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Krawędź Historia JS

Obiekty JS

Definicje obiektów Właściwości obiektu Metody obiektowe Wyświetlanie obiektów Akcesoria do obiektów Konstruktorzy obiektów Prototypy obiektów Iterowalne obiekty Zestawy obiektów Mapy obiektów Odniesienie do obiektu

Funkcje JS

Definicje funkcji Parametry funkcji Wywołanie funkcji Wywołanie funkcji Funkcja Zastosuj Zamknięcia funkcji

Klasy JS

Wprowadzenie do zajęć Dziedziczenie klas Klasa statyczna

JS Async

Oddzwaniania JS Asynchroniczny JS JS Obietnice JS Async/Oczekiwanie

JS HTML DOM

Wprowadzenie do DOM Metody DOM Dokument DOM Elementy DOM DOM HTML Formularze DOM DOM CSS Animacje DOM Wydarzenia DOM Odbiornik zdarzeń DOM Nawigacja DOM Węzły DOM Kolekcje DOM Listy węzłów DOM

Zestawienie komponentów przeglądarki JS

Okno JS Ekran JS Lokalizacja JS Historia JS JS Navigator Wyskakujący alert JS Czas JS Pliki cookie JS

JS Web API

Wprowadzenie do internetowego interfejsu API Interfejs API formularzy internetowych Interfejs API historii online API przechowywania danych w sieci Web Web Worker API Internetowy interfejs API pobierania Internetowy interfejs API geolokalizacji

JS AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

JS JSON

Wprowadzenie do JSON Składnia JSON JSON a XML Typy danych JSON Analiza JSON JSON Obiekty JSON Tablice JSON Serwer JSON JSON PHP JSON HTML JSON JSONP

JS kontra jQuery

Selektory jQuery jQuery HTML jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS płótno JS Działka JS Chart.js Wykres JS Google JS D3.js

Przykłady JS

Przykłady JS JS HTML DOM Wejście JS HTML Obiekty HTML JS Wydarzenia JS HTML Przeglądarka JS Edytor JS Ćwiczenia JS JS Quiz Certyfikat JS

Referencje JS

Obiekty JavaScript Obiekty HTML DOM


Wywołanie funkcji JavaScript


Kod wewnątrz JavaScriptu functionzostanie wykonany, gdy „coś” go wywoła.


Wywoływanie funkcji JavaScript

Kod wewnątrz funkcji nie jest wykonywany, gdy funkcja jest zdefiniowana .

Kod wewnątrz funkcji jest wykonywany, gdy funkcja jest wywoływana .

Powszechnie używa się terminu „ wywołaj funkcję ” zamiast „wywołaj funkcję ”.

Często mówi się również „wywołaj funkcję”, „uruchom funkcję” lub „wykonaj funkcję”.

W tym samouczku użyjemy invoke , ponieważ funkcja JavaScript może zostać wywołana bez wywołania.


Wywoływanie funkcji jako funkcji

Przykład

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

Powyższa funkcja nie należy do żadnego obiektu. Ale w JavaScript zawsze istnieje domyślny obiekt globalny.

W HTML domyślnym obiektem globalnym jest sama strona HTML, więc funkcja powyżej "należy" do strony HTML.

W przeglądarce obiektem strony jest okno przeglądarki. Powyższa funkcja automatycznie staje się funkcją okna.

myFunction() i window.myFunction() to ta sama funkcja:

Przykład

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

Jest to powszechny sposób wywoływania funkcji JavaScript, ale niezbyt dobra praktyka.
Zmienne globalne, metody lub funkcje mogą łatwo tworzyć konflikty nazw i błędy w obiekcie globalnym.



To słowo kluczowe

W JavaScript rzecz o nazwie this, to obiekt, który jest „właścicielem” bieżącego kodu.

Wartość this, gdy jest używana w funkcji, jest obiektem, który jest „właścicielem” funkcji.

Zauważ, że thisto nie jest zmienna. To słowo kluczowe. Nie możesz zmienić wartości this.

Wskazówka: Przeczytaj więcej o thissłowie kluczowym w JS this Keyword .


Obiekt globalny

Kiedy funkcja jest wywoływana bez obiektu właściciela, wartość this staje się obiektem globalnym.

W przeglądarce internetowej globalnym obiektem jest okno przeglądarki.

Ten przykład zwraca obiekt window jako wartość this:

Przykład

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

function myFunction() {
  return this;
}

Wywołanie funkcji jako funkcji globalnej powoduje, że jej wartością jest obiekt globalny.
Użycie obiektu window jako zmiennej może łatwo spowodować awarię programu.


Wywoływanie funkcji jako metody

W JavaScript możesz definiować funkcje jako metody obiektowe.

Poniższy przykład tworzy obiekt ( myObject ) z dwiema właściwościami ( firstName i lastName ) oraz metodą ( fullName ):

Przykład

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

Metoda fullName jest funkcją. Funkcja należy do obiektu. myObject jest właścicielem funkcji.

Rzecz o nazwie this, to obiekt, który jest „właścicielem” kodu JavaScript. W tym przypadku wartością this jest myObject .

Sprawdź to! Zmień metodę fullName , aby zwracała wartość this:

Przykład

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

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

Wywołanie funkcji jako metody obiektu powoduje, że wartością this jest sam obiekt.


Wywoływanie funkcji za pomocą konstruktora funkcji

Jeśli wywołanie funkcji jest poprzedzone newsłowem kluczowym, jest to wywołanie konstruktora.

Wygląda na to, że tworzysz nową funkcję, ale ponieważ funkcje JavaScript są obiektami, w rzeczywistości tworzysz nowy obiekt:

Przykład

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

Wywołanie konstruktora tworzy nowy obiekt. Nowy obiekt dziedziczy właściwości i metody ze swojego konstruktora.

Słowo thiskluczowe w konstruktorze nie ma wartości.
Wartość thisbędzie nowym obiektem utworzonym po wywołaniu funkcji.