我正在使用函数作为参数来构建reduce方法。如果传入的函数没有参数,那么我想返回0。

_.reduce = function(arr, fun){
    if(fun[0] == undefined){
        return 0;
    }
.
.


问题是即使将参数传递给fun,if语句也会执行。我是否尝试错误地访问参数?

最佳答案

如果您想知道一个函数需要多少个参数,您应该check it's length

_.reduce = function(arr, fun) {
  if (!fun || !fun.length) {
    return 0;
  }
  ...
};

关于javascript - 如何从作为参数传入的嵌套函数访问参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35613267/

10-17 01:32