Javascript 创建简化的下划线u.invoke

Javascript 创建简化的下划线u.invoke,javascript,function,underscore.js,Javascript,Function,Underscore.js,我正在尝试创建下划线的u.invoke函数。我不明白为什么我总是得到一个TypeError,无法读取未定义的属性“sort”。我假设这是指传递到函数中的数组,但是我可以记录集合中的每个数组,所以我不知道为什么抛出undefined 每个函数(集合、迭代对象、上下文){ 让我 让boundIteratee=iteratee.bind(上下文) if(数组.isArray(集合)){ 对于(i=0;i返回集合中的数组。。。 返回methodName.apply(数组,参数) } 返回映射(集合、公

我正在尝试创建下划线的u.invoke函数。我不明白为什么我总是得到一个TypeError,无法读取未定义的属性“sort”。我假设这是指传递到函数中的数组,但是我可以记录集合中的每个数组,所以我不知道为什么抛出undefined

每个函数(集合、迭代对象、上下文){
让我
让boundIteratee=iteratee.bind(上下文)
if(数组.isArray(集合)){
对于(i=0;i返回集合中的数组。。。
返回methodName.apply(数组,参数)
}
返回映射(集合、公式)
}
函数排序(数组){
返回array.sort()
}
console.log(调用([
[3, 1, 2],
[7, 6, 9]

],sortIt))
根据您试图实现的目标,您可以将
sortIt
函数替换为:

function sortIt() { return this.sort(); } // since you apply the arrays as context to the function
或替换

return methodName.apply(array, args);

不过,两者都不理想


另外,请查看方法。

请养成用
结束语句的习惯。自动分号插入并不总是按照您的预期进行。问题是您从未将数组传递到
sortIt
函数中。您的
args
不包含要排序的集合。
return methodName(array);