Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der Argumentfunktion in JavaScript (mit Beispielen)

不言
Freigeben: 2018-10-23 15:43:48
nach vorne
2356 Leute haben es durchsucht
Dieser Artikel bietet Ihnen eine detaillierte Erklärung der Argumentationsfunktion in JavaScript (mit Beispielen). Ich hoffe, dass er für Freunde hilfreich ist.

Übersicht

Funktionen in JavaScript unterscheiden sich in mehrfacher Hinsicht von anderen objektorientierten Sprachen.

  1. Es gibt keine Funktionsüberladung

  2. Es gibt Array-ähnliche Objektargumente

1. Funktionsüberladung

Einfach ausgedrückt erlaubt JAVA, dass mehrere Funktionen in derselben Klasse denselben Funktionsnamen, aber unterschiedliche Parameterdeklarationen haben. Dies ist eine Funktionsüberladung.

Aber JS unterstützt keine Funktionsüberladung:

function foo(num) {
    console.log(num + 100)
}
function foo(num) {
    console.log(num + 200)
}

foo(100);  // 300
Nach dem Login kopieren
Wenn zwei Funktionen mit demselben Namen in js definiert sind, dann gehört der Name nur zu der später definierten Funktion.

2. Argumentklassenarray

Das Funktionsargumentobjekt ist eine lokale Variable, die in allen (Nicht-Pfeil-)Funktionen verfügbar ist, und ist ein Array-ähnliches Objekt. Sie können die (tatsächlichen) Parameter einer Funktion innerhalb einer Funktion mithilfe des Arguments-Objekts referenzieren.

function foo() {
    console.log(arguments);
}

foo(1, "foo", false, {name: "bar"}); // [1, "foo", false, object]
Nach dem Login kopieren
function foo() {
    console.log(typeof arguments);
}

foo(1, "foo", false, {name: "bar"}); // object
Nach dem Login kopieren
Argumente ist also ein Objekt im Array-Stil mit einer Längeneigenschaft und Indexelementen.

Detaillierte Erläuterung der Argumentfunktion in JavaScript (mit Beispielen)

3. Attribute von Argumenten

Länge

function foo(num1, num2, num3) {
    console.log(arguments)
}

foo(1);  // [1]
Nach dem Login kopieren
Längenattribut stellt das Übergeben dar Geben Sie die tatsächliche Anzahl der Parameter der Funktion ein, nicht die Anzahl der formalen Parameter, als die Funktion deklariert wurde.

callee callee stellt die Funktion selbst dar, wir können uns selbst über callee in der Funktion aufrufen.

4. In echtes Array konvertieren

  1. Slice

Argumente-Objekt unterstützt keine anderen Array-Methoden, aber Sie können Verwenden Sie die Funktion .call, um indirekt aufzurufen.

function sayHi() {
    console.log(Array.prototype.slice.call(arguments, 0))
}
sayHi("hello", "你好", "bonjour")  //["hello", "你好", "bonjour"]
Nach dem Login kopieren
  1. spleißen

  2. function sayHi() {
        console.log(Array.prototype.splice.call(arguments, 0));
    }
    sayHi("hello", "你好", "bonjour")  //["hello", "你好", "bonjour"]
    Nach dem Login kopieren
  1. Array.from

  2. function sayHi() {
        console.log(Array.from(arguments));
    }
    sayHi("hello", "你好", "bonjour")  //["hello", "你好", "bonjour"]
    Nach dem Login kopieren
  1. Erweiterungsoperator

  2. function sayHi(...arguments) {
        console.log(arguments);
    }
    sayHi("hello", "你好", "bonjour")  //["hello", "你好", "bonjour"]
    Nach dem Login kopieren
5. Strikter Modus

Im strikten Modus und im nicht strikten Modus ist die Leistung von Argumenten unterschiedlich.

// 严格模式
function foo(a, b) {
    "use strict";
    console.log(a, arguments[0]);
    a = 10;
    console.log(a, arguments[0]);
    arguments[0] = 20;
    console.log(a, arguments[0]);
    b = 30;
    console.log(b, arguments[1])
}
foo(1);
输出:
1 1
10 1
10 20
30 undefined

// 非严格模式
function foo(a, b) {
    console.log(a, arguments[0]);
    a = 10;
    console.log(a, arguments[0]);
    arguments[0] = 20;
    console.log(a, arguments[0]);
    b = 30;
    console.log(b, arguments[1]);
}
foo(1);
输出:
1 1
10 10
20 20
30 undefined
Nach dem Login kopieren
Im nicht strikten Modus werden die Werte der übergebenen Parameter, tatsächlichen Parameter und Argumente gemeinsam genutzt. Wenn nichts übergeben wird, werden die tatsächlichen und Argumentwerte nicht gemeinsam genutzt.

Im strikten Modus werden die Werte tatsächlicher Parameter und Argumente nicht geteilt.


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Argumentfunktion in JavaScript (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!