【问题标题】:why do iterative methods in javascript require (item, index, and array)?为什么 javascript 中的迭代方法需要(项目、索引和数组)?
【发布时间】:2013-03-04 07:57:45
【问题描述】:

目前正在阅读professional javascript for web developers,它正在讨论数组的迭代方法(即every()filter()等)

它有些茫然地声明你需要向它传递接受三个参数的函数,数组项的值,数组中的项的位置,以及数组对象,以便所有函数看起来像这样:

function(item, index, array){

[do something with item]

}

在这种情况下,为什么需要传递 indexarray 参数?为什么item 不够呢?

【问题讨论】:

  • 那本书说的是什么方法?好吧,它是 jQuery (Javascript)。

标签: javascript


【解决方案1】:

JavaScript 不会计算您传递给函数的参数数量,因此如果您不需要对索引或参数做任何事情,那么您可以只传递一个接受该项目的函数。

【讨论】:

  • 啊,好吧,如果你想在item 的上下文中做某事,你可以选择传递那些?
  • 没错。像这样想。假设您的函数要求您调用 item 的单个参数,当 every() 函数调用您的函数时,它实际上会将所有三个参数传递给它,但是因为您没有在您的函数这些值对你的函数是不可见的。 (从技术上讲,您可以通过查看名为 arguments 的全局变量来获取它们)
  • 在这里您可以了解更多关于arguments 变量的信息:developer.mozilla.org/en-US/docs/JavaScript/Reference/…
猜你喜欢
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 2020-10-14
  • 2016-08-01
相关资源
最近更新 更多