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