Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen normalen JavaScript-Funktionen und Pfeilfunktionen?

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

不言
不言nach vorne
2019-04-11 10:59:052599Durchsuche

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

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)
    }
}

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('完成第二个普通函数')
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
[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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen