Javascript 创建简化的下划线u.invoke
我正在尝试创建下划线的u.invoke函数。我不明白为什么我总是得到一个TypeError,无法读取未定义的属性“sort”。我假设这是指传递到函数中的数组,但是我可以记录集合中的每个数组,所以我不知道为什么抛出undefinedJavascript 创建简化的下划线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(数组,参数) } 返回映射(集合、公
每个函数(集合、迭代对象、上下文){
让我
让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);