recherche

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

javascript - Processus d'exécution des appels js

window._ = {
    VARSION:"0.1.0",
    each:function(obj,iterator,context){
        var index = 0;
        try{
            if(obj.forEach){
                obj.forEach(iterator,context);
            }else if(obj.length){
                for( var i= 0; i<obj.length; i++){
                    iterator.call(context,obj[i],i);
                }
            }else if(obj.each){
                obj.each(function(value){
                    iterator.call(context,value,index++)
                });
            }else{
                var i = 0;
                for(var key in obj){
                    var value = obj[key],
                        pair = [key,value];
                    pair.key = key;
                    pair.value = value;
                    iterator.call(context,pair,i++);
                }
            }
        }catch(e){
            console.log(e)
            // if(e != "__break__") throw e;
        }
        return obj;
    }
}
var arr = {
    a:5,
    b:6,
    c:4
}
_.each(arr,function(a,b){
    console.log(a)
    console.log(b)
})

Impossible de télécharger l'image en raison de la vitesse du réseau. Désolé
Je veux savoir quelle est la fonction spécifique de cet appel dans ce code
Quel est le processus d'exécution ? Merci à tous

迷茫迷茫2797 Il y a quelques jours587

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

  • 習慣沉默

    習慣沉默2017-05-19 10:39:03

    Le périmètre de

    call 是为了给你保证你提供了第三个参数的时候 callback n'est pas pollué.

    _.each(arr, function (a, b) {
        console.log(this); //window
    })
    
    _.each(arr, function (a, b) {
        console.log(this); // arr
    },arr)

    L'ordre d'exécution du code peut être debug

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:39:03

    iterator.call(context...
    équivaut à lier ceci à la fonction itérateur en tant que contexte

    répondre
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:39:03

    Dans iterator.call(), iterator est la fonction de parcours transmise. Dans ce cas, elle fait référence à la fonction anonyme : iterator.call() 中,iterator 是传入的遍历函数,具体到本例中,就是指匿名函数:

    function(a, b) { console.log(a); console.log(b); }

    因此,call 指的是 Function.prototype.call 。具体参见Function.prototype.call() - JavaScript | MDN

    Function.prototype.call 的签名格式是:

    func.call(thisArg, param1, param2, ...)

    thisArg 用来改变函数内部 this rrreee

    Par conséquent, call fait référence à Function.prototype.call. Pour plus de détails, voir Function.prototype.call() - JavaScript MDN🎜 Le format de signature de 🎜Function.prototype.call est : 🎜 rrreee 🎜thisArg est utilisé pour modifier la liaison du pointeur this à l'intérieur de la fonction. 🎜

    répondre
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:39:03

    Utilisé pour spécifier l'environnement d'exécution de la fonction

    répondre
    0
  • 阿神

    阿神2017-05-19 10:39:03

    call fait pointer la fonction spécifiée vers l'objet correspondant.
    L'exemple ci-dessus :
    iterator.call(context,obj[i],i)//cela pointe vers le contexte, obj[i],i est le paramètre

    Il est recommandé de le lire pour comprendre le code ci-dessus http://www.liaoxuefeng.com/wi...

    répondre
    0
  • Annulerrépondre