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

javascript - question d'appel

Dans "Le guide définitif de JavaScript" il y a une fonction utilisée pour implémenter Array.prototype.map :

var map = function(a,f){
    var results = [];
    for(var i = 0,l = a.length; i<l; i++){
        if(i in a){
            results[i] = f.call(null,a[i],i,a);//这里
        }
    }
    return results;
};

Pourquoi utiliser call(null)而不是直接使用f(a[i], i, a) ? De cette façon, tout cela indique la situation globale

PHP中文网PHP中文网2687 Il y a quelques jours675

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

  • PHP中文网

    PHP中文网2017-05-19 10:46:24

    Vous pouvez voir que la map implémentée ici se présente sous cette forme, c'est-à-dire map(array, f), qui ne peut être appelée qu'avec deux paramètres
    Regardons à nouveau le prototype de fonction donné sur MDN,

    .

    const new_array = arr.map(callback[, thisArg])

    callback est ce que nous appelons f, donc le dernier thisArg est facultatif, et la fonction fournie dans le livre ne prend pas du tout en compte cette valeur, alors lorsque cette valeur n'est pas transmise, Si le paramètre thisArg est omis, ou si la valeur est assigné S'il est nul ou indéfini, cela pointe vers l'objet global.
    De plus, nous savons que lors de l'utilisation de la méthode d'appel d'objet fonction,

    Si cette fonction est en mode non strict, la valeur this spécifiée comme nulle et indéfinie pointera automatiquement vers l'objet global (objet fenêtre dans le navigateur), et la valeur de celui-ci sera la valeur d'origine (nombre, chaîne, Valeur booléenne) Un objet wrapper automatique qui pointera vers la valeur d'origine.

    En bref, en une phrase, afin de simuler complètement les propriétés de la fonction map~

    répondre
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:46:24

    /q/10...

    répondre
    0
  • Annulerrépondre