Wywołanie funkcji w JavaScript

Kod wewnątrz funkcji JavaScript zostanie wykonany, gdy 'coś' wywoła ją.

Wywołanie funkcji JavaScript

Gdy funkcja jestDefinicjakiedy, kod wewnątrz funkcji nie zostanie wykonany.

Gdy funkcja jestWywołaniekiedy, kod wewnątrz funkcji zostanie wykonany.

Wywołanie funkcji można również nazwać 'uruchomienie funkcji' lub 'wykonanie funkcji'.

W tym kursie używamy "Wywołanie”。

Wywołanie funkcji w formie funkcji

Instancja

myFunction() i window.myFunction() to ta sama funkcja:
    function myFunction(a, b) {
}
myFunction(10, 2);           // Zwróci 20

Spróbuj sam

Powyższe funkcje nie należą do żadnego obiektu. Ale w JavaScript zawsze istnieje jeden domyślny globalny obiekt.

W HTML, domyślnym globalnym obiektem jest sama strona HTML, wszystkie powyższe funkcje ' należą ' do strony HTML.

W przeglądarce, ten obiekt strony to okno przeglądarki. Funkcja nad tym automatycznie staje się funkcją okna.

myFunction() 和 window.myFunction() 是同一个函数:

Instancja

myFunction() i window.myFunction() to ta sama funkcja:
    function myFunction(a, b) {
}
return a * b;

Spróbuj sam

window.myFunction(10, 2); // Też zwróci 20

To powszechny sposób wywoływania funkcji, ale nie jest to dobry zwyczaj.

this globalne zmienne, metody lub funkcje mogą łatwo powodować konflikty nazw i lukę w obiekcie globalnym.

słówem kluczowym this w JavaScript, zwane

this obiekt, który "posiadają" bieżący kod.

wartość, w użyciu w funkcji, to obiekt, który "posiadają" tę funkcję. this Proszę zauważyć this wartość. Nie jest to zmienna. Jest to słowo kluczowe. Nie można zmienić

obiekt globalny

kiedy wywołuje się obiekt bez posiadacza obiektu,this wartość staje się obiektem globalnym.

W przeglądarkach internetowych, obiektem globalnym jest obiekt przeglądarki.

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

Instancja

var x = myFunction();            // x stanie się obiektem window
function myFunction() {
   return this;
}

Spróbuj sam

wywołując funkcję jako funkcję globalną, może prowadzić do this wartość staje się obiektem globalnym.

używając obiektu window, łatwo można doprowadzić do awarii programu.

wywołując funkcję jako metodę

W JavaScript, możesz zdefiniować funkcję jako metodę obiektu.

Poniższy przykład tworzy obiekt (myObject), który ma dwie właściwości (firstName i lastName) oraz metodę (fullName):

Instancja

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Zwróci "Bill Gates"

Spróbuj sam

fullName jest funkcją. Funkcja należy do obiektu. myObject jest posiadaczem funkcji.

zwaną this obiekt, który "posiadają" ten kod JavaScript. W tym przykładzie,this wartość to myObject.

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

Instancja

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Zwróci [object Object] (obiekt posiadacz)

Spróbuj sam

wywołanie funkcji jako metody obiektu, spowoduje this wartość staje się obiektem samym.

wywołanie funkcji za pomocą konstruktora

jeśli przed wywołaniem funkcji znajduje się new jeśli przed wywołaniem funkcji znajduje się

Wygląda to jak tworzenie nowej funkcji, ale ponieważ funkcje JavaScript są obiektami, tak naprawdę tworzy nowy obiekt:

Instancja

// To jest konstruktor funkcji:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Utworzono nowy obiekt:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // zwróci "Bill"

Spróbuj sam

wywołanie konstruktor tworzy nowy obiekt. Nowy obiekt będzie dziedziczył atrybuty i metody od swojego konstruktora.

wewnątrz konstruktor this kluczowe słowo nie ma wartości.

this wartość stanie się nowym obiektem utworzonym podczas wywołania funkcji.