下划线代码未被理解

时间:2016-10-06 04:42:24

标签: javascript underscore.js

在以下javascript代码中,(下划线库):

function getStudentInfo(elem, indx, list){
    //does stuff with them
}
window.addEventListener("load", function(e){
    _.each(students,getStudentInfo);
}

学生是一个看起来像这样的数组

var students=[
{
"first":"Woody",
"stuff":"12",
}
//a lotta objects here
]

我的问题是下划线_.each的回调函数,(getStudentInfo)getStudentInfo在哪里知道参数是什么?是什么将参数传递给它?

3 个答案:

答案 0 :(得分:0)

如果您看到_.each功能源代码,它就像下面的代码段一样。其中

obj :您的数组

iteratee :回调函数

if (isArrayLike(obj)) { // checks for an array and it it is..
  for (i = 0, length = obj.length; i < length; i++) { // iterate over the array elements
    iteratee(obj[i], i, obj); // and pass each element to callback function
  }
}

答案 1 :(得分:0)

_.each(..)回调函数需要3个参数

  1. 元素 - &gt;数组/列表
  2. 索引 - &gt;数组/列表中的元素
  3. list - &gt;列表iteself
  4. 通过将列表作为第一个参数传递来调用_.each()并通过将其逐个传递给回调函数来进行休息

    _。each(“列表/数组”,回调函数)

答案 2 :(得分:-2)

在这里你正在对阵列进行操作,而最流行的javacript库是lodash(被称为&#39; _&#39;)。

回调函数总是返回一个值,该值是数组的单个元素。它的工作方式与javascript的每个循环相同。

参考https://lodash.com/docs/4.16.3#forEach

其文档