为什么这个_.every(...)返回false?

Gra*_*ate 2 underscore.js

你能解释为什么这个陈述会返回false吗?

_.every([true,1,null,'yes'],_.identity); //假

如果没有null,则返回true.所以这个是问题所在.但这_.identity(null) === null事实.

该示例来自官方文档(http://underscorejs.org/#every).

nra*_*itz 5

_.every当且仅当迭代器函数为数组中的每个项返回一个truthy值时,该方法才返回true._.identity只是一个直通,所以_.identity(null)会回来null,这不是真正的.迭代停止并_.every返回false.