javascript中另一个函数中的函数

javascript中另一个函数中的函数,javascript,function,recursion,module,Javascript,Function,Recursion,Module,我试图调用函数isevenn中的另一个函数: function iseven(n) { function remainder(n) { if (n%2==0) { return true; } else { return false; } } } console.log(iseven(4)); 它返回undefined 正确的方法是: function a(x) { // &l

我试图调用函数isevenn中的另一个函数:

function iseven(n) {
    function remainder(n) {
        if (n%2==0) {
            return true;
        } else {
            return false;
        }
    }
}
console.log(iseven(4));
它返回undefined

正确的方法是:

function a(x) {    // <-- function
  function b(y) { // <-- inner function
    return x + y; // <-- use variables from outer scope
  }
  return b;       // <-- you can even return a function.
}
console.log(a(3)(4));
试一试


函数isevenn{return n%2==0;}

您想要这样的函数吗

function iseven(n)  { 
    if (n%2==0) { 
        return true; } 
    else { 
        return false; 
    } 
}

console.log(iseven(4));
还有更简洁一点的:

function isEven(n) {
   return n % 2 === 0;
}

不太清楚为什么原始结构是这样的。

您的主函数iseven不返回任何内容。根据您的代码,它应该返回false。以下是修复方法:

function iseven(n) { 
    function remainder(n) { 
        if (n%2==0) { 
            return true; 
        } 
        else { 
            return false; 
        } 
    }
    //iseven() should return something
    return false; 
}
console.log(iseven(4));

你在一个函数中有一个函数。外部的一个不会返回任何东西。你想用两个函数做什么?因为你在一个函数中有一个函数remaindern{和一个closing}@nahu你解决了你的问题吗?如果你希望它返回布尔值,我会用函数isevenn{返回n%2==0;}但这只是吹毛求疵,因为函数返回的0和1分别是假值和真值。你是对的@RicoKahler!我会更新我的answer@nahu我的回答对你有帮助吗?我更喜欢这个,但在你的例子中,这更像是一种风格