以下是我所拥有的:
function verificarNumero(test, num) {
return (test(num));
};
var resultadoTesteMultiplos = verificarNumero(function (num){return (num % 10 == 0);}, num1);
该函数用于查明数字是否为10的倍数。 我知道有更简单的方法可以做到这一点,但我真的很想做到这一点。
我希望能够执行类似console.log(resultadoTesteMultiplos(10));
的操作,但控制台返回" resultadoTesteMultiplos不是函数"," num1未定义。"
我做错了什么?
答案 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));