为什么不filter()接受我的变量即函数?

时间:2019-01-19 06:17:05

标签: javascript

所以isDog显然是一个函数,我用typeof对其进行了测试,但是当我运行该程序时,我得到一个“ TypeError:undefined在Array.filter上不是一个函数”。我在考虑这个错误吗?顺便说一句,我确实知道var dogs = animals.filter( (animal) => animal.species === 'dog');可以工作,但是对于为什么我不能将该函数分配给var并调用它感到困惑。

var animals = [
  { name: 'Fluffykins', species: 'rabbit' },
  { name: 'Caro',       species: 'dog' },
  { name: 'Hamilton',   species: 'dog' },
  { name: 'Harold',     species: 'fish' },
  { name: 'Ursula',     species: 'cat' },
  { name: 'Jimmy',      species: 'fish' }
]

var dogs = animals.filter(isDog);

var isDog = function(animal) {
  return animal.species === 'dog';
}

0 个答案:

没有答案