ES6 Die Eigenschaften der Pfeilfunktion sind: 1. Die Pfeilfunktion hat kein Argumentobjekt. 2. Der Wert dieser Pfeilfunktion hängt vom Wert dieser Nichtpfeilfunktion außerhalb der Funktion ab, die Pfeilfunktion jedoch nicht 3. Die Pfeilfunktion kann keine neue Schlüsselwortdeklaration verwenden. 4. Pfeilfunktionen haben kein Prototypattribut.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.
Der ES6-Standard fügt eine neue Funktion hinzu: Pfeilfunktion.
Warum heißt es Pfeilfunktion? Weil seine Definition einen Pfeil verwendet:
x => x * x
Die obige Pfeilfunktion entspricht:
function (x) { return x * x; }
Die Pfeilfunktion entspricht einer anonymen Funktion und vereinfacht die Funktionsdefinition. Es gibt zwei Formate von Pfeilfunktionen. Eines ist wie das obige, das nur einen Ausdruck enthält und sogar {...} und return weggelassen werden. Es gibt auch eine Methode, die mehrere Anweisungen enthalten kann. In diesem Fall können { ... } und return nicht weggelassen werden:
x => { if (x > 0) { return x * x; } else { return - x * x; } }
Wenn der Parameter keiner ist, müssen Sie ihn in Klammern setzen ():
// 两个参数: (x, y) => x * x + y * y // 无参数: () => 3.14 // 可变参数: (x, y, ...rest) => { var i, sum = x + y; for (i=0; i<rest.length; i++) { sum += rest[i]; } return sum; }
If Wenn Sie ein Objekt zurückgeben möchten, müssen Sie Folgendes beachten: Wenn es sich um einen einzelnen Ausdruck handelt, wird ein Fehler gemeldet, wenn Sie ihn wie folgt schreiben:
// SyntaxError: x => { foo: x }
Da im Funktionskörper ein syntaktischer Konflikt mit {...} vorliegt, Es muss geändert werden in:
// ok: x => ({ foo: x })
es6 Eigenschaften von Pfeilfunktionen
1. Die Pfeilfunktion hat keine Argumente
let test1 = () => { console.log(arguments) } test1(123) // arguments is not defined
Die Pfeilfunktion sucht beim Suchen nur nach der äußeren Nicht-Pfeilfunktion für das Argumentobjekt. Wenn es sich bei der äußeren Ebene um eine Funktion ohne Pfeilfunktion handelt, wird sie unterbrochen und zurückgegeben, wenn sie nicht über das Argumentobjekt verfügt
Der This-Wert der Pfeilfunktion hängt vom This-Wert der Nicht-Pfeilfunktion außerhalb der Funktion ab. Wenn die obere Ebene noch eine Pfeilfunktion ist, suchen Sie weiter nach oben. Wenn sie nicht gefunden wird, ist dies das Fenster Objektfunction test2(a, b, c){
return () => {
console.log(arguments) // [1]
}
}
test2(1)()
let person = { test: () => { console.log(this) }, fn(){ return () => { console.log(this) } } } person.test() // window person.fn()() // person对象
let person = {} let test = () => console.log(this) test.bind(person)() test.call(person) test.apply(person)
4. Pfeilfunktionen haben keine Prototypattribute
Haben alle Funktionen in JavaScript Prototypattribute? let test = () => {}
new test() // Uncaught TypeError: test is not a constructor
let test = () => {} test.prototype // undefined test.__proto__ === Function.prototype // true
[Verwandte Empfehlungen:
Javascript-Video-Tutorial,
Web-FrontendDas obige ist der detaillierte Inhalt vonWas sind die Merkmale der ES6-Pfeilfunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!