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方法怎么有数组呢?这是什么用法呢?求解惑~
大家讲道理2017-05-19 10:20:18
filters[this.visibility]
这里不是数组,是调用对象下的方法。
this.visibility
的结果可能有三个 all
, active
, completed
所以最终是个类似于这样的东西:
filters['all']
就相当于调用了 filters
对象下的 all
方法,因为 this.visibility
是个变量,所以必须写成这种写法