2017-03-21 2 views
0

여기에 내가 가진 무엇 :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

좋아. 'num1'은 어디에 정의합니까? – Ionut

+0

나는 이것을 인수로 전달하므로 정의 할 필요가 없다 ... 맞습니까? –

+2

필요한 것은 함수를 반환하는 함수입니다. IgorSílva @ –

답변

4

이 소리 기능.

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

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

console.log(resultadoTesteMultiplos(10)); 
2

num1 변수를 정의하면 코드가 작동하고 resultadoTesteMultiplos의 유형이 boolean입니다. 아래의 스 니펫 워킹하시기 바랍니다 참조 :

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

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

console.log(resultadoTesteMultiplos(10)); 
+0

예 난 내가 원하는 것은 그런 식으로 설정하지 않고 NUM1에 값을 전달하는 것이었다 것을 –

+0

시도 @.. IgorSílva, 알았어, 위와 같은 대답도 효과가있다.하지만 내 대답과 받아 들인 대답의 차이점을 알면 나는 네가 필요로하는 것을 발견하게되어 기쁘다. – Ionut

0

반환 verificarNumero에서 함수의 아닌 결과 : 당신은 카레 만 가지고 절반 방법을 의미처럼

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);

관련 문제