recherche

Maison  >  Questions et réponses  >  le corps du texte

Le rôle de la fonction javascript passant undéfini en paramètre

var leadingThirtysevenList = list.bind(undefined, 37);

Il s'agit d'un extrait de code que j'ai vu dans le manuel sur ce que fait la fonction bind() lorsqu'elle passe le deuxième paramètre, dans lequel elle passe undefined comme paramètre. J'ai également vu la pratique consistant à transmettre des paramètres non définis dans certains frameworks, mais je n'ai pas pu trouver de réponse plus complète et plus claire grâce aux recherches en ligne. J'aimerais demander aux enseignants de donner une réponse détaillée.

伊谢尔伦伊谢尔伦2751 Il y a quelques jours678

répondre à tous(4)je répondrai

  • 仅有的幸福

    仅有的幸福2017-05-19 10:46:01

    Le code que vous avez fourni, pourquoi undefined est transmis, n'a peut-être rien à voir avec mon explication ci-dessous.

    Je parlerai principalement de certains autres frameworks ; par exemple, jquery passera undéfini en paramètre et attribuera une valeur nulle.
    C'est à cause d'un bug dans js, c'est-à-dire qu'undéfini peut être réécrit ! ! , oui, vous avez bien entendu.

    Pour savoir pourquoi il est dangereux de réécrire undéfini, regardez le code suivant :

    (function (undefined) {
        let a;
        
        // 如果a没有值则为a赋值.  但因为undefined被重写了,所以这句根本执行不到。
        if (a === undefined) {
            a = 'b';
        }
    })(true);

    répondre
    0
  • 高洛峰

    高洛峰2017-05-19 10:46:01

    Alors, selon vous, que faut-il faire si vous souhaitez passer le deuxième paramètre et utiliser la valeur par défaut pour le premier paramètre ou le laisser indifférent ?

    Ce code sert uniquement à implémenter l'appel de curry de fonction

    répondre
    0
  • 怪我咯

    怪我咯2017-05-19 10:46:01

    ECMAScript5.1 15.3.4.4 explique que lorsque le premier paramètre passé est nul ou indéfini, le contexte de la fonction pointera vers window (global dans le nœud)

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:46:01

    Le premier est utilisé comme espace réservé, mais l'utilisation de null aura un meilleur effet que undefined. Généralement, j'ai l'habitude d'utiliser null pour occuper des positions.

    répondre
    0
  • Annulerrépondre