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.
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
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) } }
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 Argumentenlet 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('完成第二个普通函数')
let a = () => {} let b = new a() // a is not a constructor
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!