Javascript函数

Javascript函数,javascript,Javascript,这是我在stackoverflow的第一个问题,希望有人能帮助我 var filters = { all: function (todos) { return todos }, active: function (todos) { return todos.filter(function (todo) { return !todo.completed }) }, completed: function (todos) { retur

这是我在stackoverflow的第一个问题,希望有人能帮助我

var filters = {
  all: function (todos) {
    return todos
  },
  active: function (todos) {
    return todos.filter(function (todo) {
      return !todo.completed
    })
  },
  completed: function (todos) {
    return todos.filter(function (todo) {
      return todo.completed
    })
  }
}

filteredTodos: function () {
      return filters[this.visibility](this.todos)
    },
为什么这个“过滤器[this.visibility](this.todos)”可以使用 我以前很警觉,所以 没有像这样使用警报[]()
请帮助我
筛选[this.visibility](this.todos)
意味着
筛选[this.visibility]
的计算结果是一个函数


例如,如果
this.visibility=“all”
筛选[this.visibility]
表示
筛选[“all”]
。然后用参数this.todos调用该函数。这相当于写作

filters.all(this.todos)

但是,它允许根据
this.visibility

动态选择函数。您的问题不太清楚-您到底在问什么?
过滤器[this.visibility]
不是函数调用,而是使用访问的属性-结果属性是函数,因此是
(this.todos)
最后的调用“How do that”过滤器[this.visibility](this.todos)使用我以前是alert()而不是[]{}()。“请说英语。@zer00ne放松点,显然OP是非母语人士……读第一句话表明OP掌握了英语。@please是一个讽刺的措辞,我说请,我没有投票结束这个问题,也没有否决它,那么你认为我还能做些什么来“放松点?”?“我应该编辑OP的最后一句话吗?”,?如果所写内容有任何连贯性,我将很乐意这样做。谢谢你回答我,我想理解