JavaScript函数作为变量函数的参数?

时间:2017-03-21 09:50:01

标签: javascript

以下是我所拥有的:

function verificarNumero(test, num) {
    return (test(num));
};

var resultadoTesteMultiplos = verificarNumero(function (num){return (num % 10 == 0);}, num1);

该函数用于查明数字是否为10的倍数。 我知道有更简单的方法可以做到这一点,但我真的很想做到这一点。

我希望能够执行类似console.log(resultadoTesteMultiplos(10));的操作,但控制台返回" resultadoTesteMultiplos不是函数"," num1未定义。"

我做错了什么?

3 个答案:

答案 0 :(得分:4)

听起来你想要咖喱但只有一半:

function verificarNumero(test) {
  return function(num) {
    return test(num);
  };
}

var resultadoTesteMultiplos = verificarNumero(function(num) {
  return (num % 10 == 0);
});

console.log(resultadoTesteMultiplos(10));

答案 1 :(得分:2)

如果定义num1变量,则代码应该有效,resultadoTesteMultiplos的类型为boolean。请参阅下面的工作代码:



var num1 = 10;
function verificarNumero(test, num) {
  return (test(num));
};

var resultadoTesteMultiplos = verificarNumero(function(num) {
  return (num % 10 == 0);
}, num1);
console.log(typeof resultadoTesteMultiplos);
console.log(resultadoTesteMultiplos);




答案 2 :(得分:0)

verificarNumero返回一个函数,而不是函数的结果。

function verificarNumero (cb) {
    return function (num) {
        return cb.apply(this, [num]);
    }    
};

resultadoTesteMultiplos = verificarNumero(function (num) {
    return (num % 10 == 0);
};

console.log(resultadoTesteMultiplos(10));