Maison > interface Web > js tutoriel > le corps du texte

Ce que vous devez savoir sur les fonctions fléchées JavaScript et les paramètres de repos

WBOY
Libérer: 2021-12-21 18:35:08
avant
2149 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur les fonctions fléchées et les paramètres restants en JavaScript. Les fonctions fléchées et les paramètres restants sont très concis. Voyons comment les utiliser. J'espère que cela sera utile à tout le monde.

Ce que vous devez savoir sur les fonctions fléchées JavaScript et les paramètres de repos

1. Qu'est-ce qu'une fonction flèche ?

La syntaxe de l'expression de la fonction flèche est plus concise que l'expression de la fonction, qui est une forme simplifiée de la fonction.
Sa méthode d'écriture :

() => {};   // 可以用来写一个匿名函数
Copier après la connexion

Sa structure :

const / let 函数名 参数 => 函数体
Copier après la connexion

Par exemple, il existe une forme générale d'expression de fonction

let add = function(x, y) {
	return x + y;};
Copier après la connexion

qui peut s'écrire à l'aide de fonctions flèches :

let add = (x, y) => {
	return x + y;};
Copier après la connexion

2. L'abréviation de fonction flèche

  • Paramètre unique
// 对于单个参数,我们可以省略外面的圆括号let addOne = x => {
	return x + 1;}
Copier après la connexion
  • Corps de fonction sur une seule ligne
// 对于单行返回函数体,可以同时省略 {} 和  returnlet add (x, y) => x + y;
Copier après la connexion
  • Objet sur une seule ligne
// 对于返回单行对象,在外面加个 ()let add (x, y) => ({
	value: x + y;});
Copier après la connexion

3. Connaissance de base des fonctions de flèche

La fonction de flèche n'a pas cela, elle le recherchera dans le couche externe selon la chaîne de portée.
Par exemple :

var A = 1;let fun = {
    A: 2,
    printA: () => {
        console.log(this.A);
    },
    printAA: function() {
        let print = () => {
            console.log(this.A);
        }
        print();
    }};fun.printA();  // 1fun.printAA();  // 2
Copier après la connexion

Appelez printA, qui génère this.A Puisque la fonction flèche n'a pas this, elle le recherche. dans la couche externe La couche externe est amusante. Ici, fun.printA() est appelé dans la portée globale, donc le this externe pointe vers window, car avant A = 1 est défini avec var, donc la sortie est 1. printA,里面是输出 this.A,由于箭头函数没有 this,所以在外层寻找,外层是 fun。在这里,fun.printA()是在全局作用域中调用的,所以外层的 this 指向的是 window,由于之前用 var 定义了一个 A = 1,所以输出的是 1。

调用 printAA,在里面调用了 print(),输出 this.A,看 print 这个函数,是个箭头函数,他没有 this,所以找外层,它的外层是 printAA,它是由 fun 调用的,所以它的 this 指向 fun,所以输出 fun 中定义的 A,也就是 2。


4. 箭头函数不适用的场景

  1. 作为构造函数

实例化构造函数之后,它的 this 指向实例化的对像,而箭头函数没有 this,所以它不能用来做构造函数。

  1. 需要 this 指向调用对象的时候

  2. 需要使用 arguments 的时候

箭头函数中没有 arguments,可以使用剩余参数来存参数。


5. 剩余参数

5.1) 什么是剩余参数 ?

举个例子:

let add = (x, y, z, ...args) => {
	console.log(x, y, z, args);};
Copier après la connexion

args 就是剩余参数。
剩余参数是个数组,它即使没有值,也是以一个空数组形式存在。
比如:

let add = (x, y, z, ...args) => {
    console.log(x, y, z, args);}add(1, 2, 3);
Copier après la connexion

Ce que vous devez savoir sur les fonctions fléchées JavaScript et les paramètres de repos
x, y, z 对应参数 1, 2, 3,由于剩余参数没有值,所以空数组形式存在。

5.2) 作用

由于箭头函数没有 arguments,所以我们可以使用剩余参数替代 arguments
Appelez printAA, appelez print() à l'intérieur et affichez this.A Voir print pour cette fonction. , est une fonction fléchée. Elle n'a pas this, alors recherchez la couche externe. Sa couche externe est printAA, qui est appelée par fun, donc son <code>this pointe vers fun, donc le A défini dans fun est sorti, qui est 2.

Ce que vous devez savoir sur les fonctions fléchées JavaScript et les paramètres de repos4. Scénarios où les fonctions fléchées ne sont pas applicables

    En tant que constructeur

    Après l'instanciation du constructeur, c'est this qui pointe vers l'objet instancié, mais la fonction flèche ne l'a pas, donc elle ne peut pas être utilisé comme constructeur.
    Lorsque vous en avez besoin pour pointer vers l'objet appelant
    Lorsque vous devez utiliser des arguments

    Il n'y a aucun argument dans la fonction flèche, vous pouvez utiliser les paramètres restants pour stocker les paramètres.

    5. Paramètres résiduels🎜🎜5.1) Que sont les paramètres résiduels ? 🎜🎜Par exemple : 🎜
    const print = (...args) => {
        console.log(args);};print(1, 2);
    Copier après la connexion
    🎜args sont les paramètres restants. 🎜 Le paramètre restant est un tableau Même s'il n'a aucune valeur, il existe sous la forme d'un tableau vide. 🎜 Par exemple : 🎜
    let add = (...args) => {};
    Copier après la connexion
    🎜Insérer la description de l'image ici🎜 x , y, z correspondent aux paramètres 1, 2 et 3. Les paramètres restants n'ayant aucune valeur, ils existent sous forme de tableaux vides. 🎜🎜5.2) Effet 🎜🎜Étant donné que la fonction flèche n'a pas de arguments, nous pouvons utiliser les paramètres restants au lieu de arguments pour obtenir les paramètres réels 🎜 Par exemple : 🎜rrreee 🎜🎜🎜🎜5.3 ) Notes🎜🎜🎜Dans les fonctions fléchées, même s'il n'y a qu'un seul paramètre restant, les parenthèses ne peuvent pas être omises🎜🎜rrreee🎜🎜Le paramètre restant ne peut être que le dernier paramètre, et il ne peut y avoir aucun autre paramètre après cela, sinon une erreur sera signalée🎜🎜🎜【 Recommandations associées : 🎜Tutoriel d'apprentissage javascript🎜🎜】🎜🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:csdn.net
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal