首页  >  问答  >  正文

javascript - JS函数问题

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)
},

很想问一下filteredTodos这个方法调用filters方法怎么有数组呢?这是什么用法呢?求解惑~

黄舟黄舟2734 天前382

全部回复(1)我来回复

  • 大家讲道理

    大家讲道理2017-05-19 10:20:18

    filters[this.visibility] 这里不是数组,是调用对象下的方法。

    this.visibility的结果可能有三个 all, active, completed 所以最终是个类似于这样的东西:

    filters['all'] 就相当于调用了 filters 对象下的 all 方法,因为 this.visibility 是个变量,所以必须写成这种写法

    回复
    0
  • 取消回复