Definicja funkcji w JavaScript
- Poprzednia strona Odwołania do obiektów JS
- Następna strona Parametry funkcji JS
Funkcje JavaScript są definiowane przez function
kluczowe słowadefiniować.
możesz używać funkcjiHoisting to sposób, w jaki JavaScriptlub funkcjiWyrażenie.
deklaracji funkcji
Wcześniej w tym kursie nauczyłeś się, że funkcje można zdefiniować za pomocą następującej składniHoisting to sposób, w jaki JavaScriptfunkcja:
function nazwaFunkcji(parametry) { Kod do wykonania }
Zadeklarowane funkcje nie są wykonywane bezpośrednio. Są "zachowywane do późniejszego użycia", i będą wykonywane w późniejszym czasie, gdy zostaną wywołane.
Przykład
function myFunction(a, b) { return a * b; }
Średnik jest używany do oddzielania wykonalnych instrukcji JavaScript.
Ponieważ funkcjeHoisting to sposób, w jaki JavaScriptNie są wykonalnymi instrukcjami, kończą się średnikiem rzadko.
wyrażeń funkcji
Funkcje JavaScript mogą również używaćWyrażeniedo definiowania.
Wyrażenia funkcji mogą być przechowywane w zmiennych:
Przykład
var x = function(a, b) {return a * b};
Po zapisaniu wyrażenia funkcji w zmiennej, ta zmienna może być używana jako funkcja:
Przykład
var x = function(a, b) {return a * b}; var z = x(4, 3);
;Anonimowe funkcjeAnonimowa funkcja wywoływana sama siebie
Funkcje przechowywane w zmiennej nie wymagają nazwy funkcji. Zawsze są wywoływane za pomocą nazwy zmiennej.
Powyższa funkcja kończy się średnikiem, ponieważ jest częścią wykonalnego polecenia.
konstruktor Function()
Jak zobaczyłeś w poprzednich przykładach, funkcje JavaScript są definiowane przez function
kluczowe słowa.
Funkcja może również być zdefiniowana poprzez Function()
Function()
Przykład
wbudowanych funkcji konstruktora JavaScript do jej zdefiniowania. Funkcje JavaScript mogą być używane jako wartości:
var myFunction = new Function("a", "b", "return a * b");
Przykład
Nie musisz naprawdę używać konstruktora funkcji. Przykład może wyglądać tak: Funkcje JavaScript mogą być używane jako wartości:
var myFunction = function (a, b) {return a * b}; W większości przypadków możesz uniknąć użycia
new
kluczowe słowa.
przenosi
w tym samouczącym kursie nauczyłeś się o "przenoszeniu" (hoisting).Hoisting to sposób, w jaki JavaScriptDeklaracja
Domyślne zachowanie przenoszenia do początku obecnego obszaru działania.
Hoisting dotyczy deklaracji zmiennych i funkcji.
Dlatego funkcje JavaScript mogą być wywoływane przed ich deklaracją: myFunction(5); function myFunction(y) { }
return y * y;
Funkcje zdefiniowane wyrażeniem nie są uniesione.
Funkcja wywoływana sama siebie
Wyrażenie funkcji może być "wywoływane samo siebie".
Wyrażenie wywoływane samo siebie jest automatycznie wywoływane (zaczyna się), bez dokonania wywołania. }
.
Wyrażenie funkcji jest automatycznie wykonywane, jeśli za wyrażeniem jest
Nie możesz wywołać funkcji deklaracji.
Przykład
Musisz dodać nawiasy okrągłe wokół funkcji, aby wskazać, że jest to wyrażenie funkcji: (function () { var x = "Hello!!"; // Wywołuję siebie}()
;Powyższa funkcja jest tak naprawdęAnonimowa funkcja wywoływana sama siebie
(funkcje bez nazwy).
Funkcje mogą być używane jako wartości
Przykład
function myFunction(a, b) { return a * b; } Funkcje JavaScript mogą być używane jako wartości:
var x = myFunction(4, 3);
Przykład
function myFunction(a, b) { return a * b; } Funkcje JavaScript mogą być używane w wyrażeniach:
var x = myFunction(4, 3) * 2;
Funkcje w JavaScriptie są obiektami typeof
Operator zwraca "function
".
ale najlepiej jest opisywać funkcje JavaScript jako obiekty.
Każda funkcja JavaScript maAtrybutyiMetoda.
arguments.length
Zwraca liczbę argumentów otrzymanych przez funkcję przy jej wywołaniu:
Przykład
function myFunction(a, b) { return arguments.length; }
toString()
Funkcja zwraca funkcję jako ciąg znaków:
Przykład
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
Funkcje zdefiniowane jako właściwości obiektu, nazywane są metodami obiektu.
Funkcje zaprojektowane do tworzenia nowych obiektów, nazywane są funkcjami konstruktora obiektu (konstruktorami obiektów).
Funkcje strzałkowe
Funkcje strzałkowe pozwalają na użycie skróconej składni do tworzenia wyrażeń funkcji.
Nie potrzebujesz słowa kluczowego function, słowa kluczowego return i klamek.
Przykład
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
Funkcje strzałkowe nie mają własnego this. Nie są odpowiednie do definiowania metod obiektu.
Funkcje strzałkowe nie są uniesione. Muszą być zdefiniowane przed użyciem.
Użycie const jest bezpieczniejsze niż var, ponieważ wyrażenia funkcji są zawsze wartościami stałymi.
Jeśli funkcja jest pojedynczym zdaniem, można pominąć słowo kluczowe return i klamry. Dlatego zachowanie ich może być dobrym nawykiem:
Przykład
const x = (x, y) => { return x * y };
IE11 i wcześniejsze wersje nie obsługują funkcji strzałkowych.
- Poprzednia strona Odwołania do obiektów JS
- Następna strona Parametry funkcji JS