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
Le périmètre de
call
是为了给你保证你提供了第三个参数的时候callback
n'est pas pollué.L'ordre d'exécution du code peut être debug
iterator.call(context...
équivaut à lier ceci à la fonction itérateur en tant que contexte
Dans
iterator.call()
,iterator
est la fonction de parcours transmise. Dans ce cas, elle fait référence à la fonction anonyme :iterator.call()
中,iterator
是传入的遍历函数,具体到本例中,就是指匿名函数:因此,call 指的是
Function.prototype.call
。具体参见Function.prototype.call() - JavaScript | MDNFunction.prototype.call
的签名格式是:thisArg 用来改变函数内部
Par conséquent, call fait référence àthis
rrreeeFunction.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 pointeurthis
à l'intérieur de la fonction. 🎜Utilisé pour spécifier l'environnement d'exécution de la fonction
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...