了解JavaScript querySelectorAll循环

了解JavaScript querySelectorAll循环,javascript,selectors-api,Javascript,Selectors Api,我知道有更简单的方法可以做到这一点,但我了解到这是最佳实践: var forEach = function (array, callback, scope) { for (var i = 0; i < array.length; i++) { callback.call(scope, i, array[i]); } }; var myNodeList = document.querySelectorAll('i'); forEach(myNodeLis

我知道有更简单的方法可以做到这一点,但我了解到这是最佳实践:

var forEach = function (array, callback, scope) {
    for (var i = 0; i < array.length; i++) {
        callback.call(scope, i, array[i]); 
    }
};


var myNodeList = document.querySelectorAll('i');
forEach(myNodeList, function (index, value) {
    console.log(index, value); 
});
var-forEach=function(数组、回调、作用域){
对于(var i=0;i
有些事情我不太明白:

  • 函数和回调中作用域参数的用途是什么?
  • 我认为回调的目的是利用“this”?
  • 与简单的for循环相比,这种方法有什么特别之处?

范围
正在设置回调的上下文或
.call
文档将提供更多信息。回调的使用与上下文或
没有直接关系<代码>此
对象可用于所有功能。回调主要用于异步工作(但是承诺已经到来,并且为此目的使它们变得多余,从技术上讲,您仍然提供了一个
。然后
回调)。与标准的
for
循环相比,它并不是那么特别。它确实提供了与本机
数组类似的语法。forEach
很好。
scope
正在设置回调的上下文或
this
.call
文档将提供更多信息。回调的使用与上下文或
没有直接关系<代码>此
对象可用于所有功能。回调主要用于异步工作(但是承诺已经到来,并且为此目的使它们变得多余,从技术上讲,您仍然提供了一个
。然后
回调)。与标准的
for
循环相比,它并不是那么特别。它确实提供了与本机
数组.forEach
类似的语法,这很好。