Javascript 试图重写每一个-有更好的方法吗?
我正在尝试创建我自己的每一个类似于jquery的。我得到了预期的输出。我不确定为什么向callback.call提供“this”会使代码正常工作。有没有其他方法可以实现相同的行为Javascript 试图重写每一个-有更好的方法吗?,javascript,loops,Javascript,Loops,我正在尝试创建我自己的每一个类似于jquery的。我得到了预期的输出。我不确定为什么向callback.call提供“this”会使代码正常工作。有没有其他方法可以实现相同的行为 function print(val){ console.log(val); } function each(list, callback){ for(var i = 0; i < list.length; i++){ callback.call(this, list[i]); } }
function print(val){
console.log(val);
}
function each(list, callback){
for(var i = 0; i < list.length; i++){
callback.call(this, list[i]);
}
}
var list = [1, 2, 3];
each(list, print);
功能打印(val){
控制台日志(val);
}
每个函数(列表、回调){
对于(变量i=0;i
以下是您所做的解释。使用调用
函数,第一个参数是定义所调用函数的“this”。这意味着,如果我执行myFunction.call(1,2,3)
,在myFunction
中,this==1,param1==2,param2==3
使用“普通”调用调用函数
myFunction(1)
不会设置此值。所以这次param1==1
你可以使用list。forEach(print)
没有必要传递这个删除“this”会给我未定义的信息。你有回调.调用(list[i])代码>而不是回调(列表[i])代码>?函数print(){console.log(this);}