Maison > Questions et réponses > le corps du texte
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
習慣沉默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
伊谢尔伦2017-05-19 10:39:03
iterator.call(context...
équivaut à lier ceci à la fonction itérateur en tant que contexte
漂亮男人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
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. 🎜阿神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...