Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist der Unterschied zwischen normalen JavaScript-Funktionen und Pfeilfunktionen?

不言
Freigeben: 2019-04-11 10:59:05
nach vorne
2660 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Frage, was der Unterschied zwischen normalen JavaScript-Funktionen und Pfeilfunktionen ist. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Ich verwende oft Pfeilfunktionen, aber ich habe kein tiefes Verständnis für Pfeilfunktionen. Schauen wir uns nun die Unterschiede zwischen diesen beiden Funktionen an.

1 keinen Prototyp haben (Prototyp) )

Da die Pfeilfunktion keinen Prototyp hat, hat die Pfeilfunktion selbst diesen nicht

let a = () => {}
console.log(a.prototype) // undefined
let b = function () {}
console.log(b.prototype) // Object
Nach dem Login kopieren

2. Das der Pfeilfunktion zeigt darauf
let a;
let barObj = {
    msg: 'bar的this指向'
}
let fooObj = {
    msg: 'foo的this指向'
}
bar.call(barObj)
foo.call(fooObj) // { msg: 'bar的this指向'  }
bar.call(fooObj)
a() // { msg: 'foo的this指向' }

function foo() {
    a()
}
function bar () {
    a = () => {
        console.log(this)
    }
}
Nach dem Login kopieren

Aus dem obigen Beispiel kann geschlossen werden:

Dies der Pfeilfunktion zeigt auf die erste gewöhnliche Funktion in der äußeren Schicht, wenn sie definiert ist definiert ist, was nichts mit dem Verwendungsort zu tun hat.

Dies der geerbten gewöhnlichen Funktion zeigt auf Ändern, dies der Pfeilfunktion wird sich ebenfalls ändern.

Sie können den This-Zeiger der Pfeilfunktion nicht direkt ändern.

Sie können den This-Zeiger der geerbten gewöhnlichen Funktion ändern. Dann ändert sich auch der This-Zeiger der Pfeilfunktion entsprechend

3. Pfeilfunktion mit Argumenten

let b = () => {
        console.log(arguments);
    }
    b(1,2,3,4) // arguments is not defined

    function bar () {
        console.log(arguments);  // 完成第二个普通函数
        bb('完成第一个普通函数')
        function bb() {
            console.log(arguments); // 完成第一个普通函数
            let a = () => {
                console.log(arguments); // 完成第一个普通函数
            }
            a('箭头函数')
        }
    }
    bar('完成第二个普通函数')
Nach dem Login kopieren
Aus dem Obigen können wir die folgenden zwei Punkte ziehen

    Wenn die Pfeilfunktion auf das Fenster zeigt, melden Argumente einen undefinierten Fehler
  1. Wenn es kein Fenster ist, dann sind es die Argumente der ersten gewöhnlichen Funktion in der äußeren Ebene
4 Die Pfeilfunktion kann nicht verwendet werden new

Egal wo Dies ist der Pfeilfunktionspunkt. Wenn Sie new zum Aufrufen der Pfeilfunktion verwenden, wird ein Fehler gemeldet. Pfeil Die Funktion hat keinen Konstruktor

let a = () => {}
    let b = new a() // a is not a constructor
Nach dem Login kopieren
[Verwandte Empfehlungen:

JavaScript-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen normalen JavaScript-Funktionen und Pfeilfunktionen?. 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!