2014-05-13 3 views
0

정확하게 console.log() 함수입니까? 왜 두 개의 코드 조각 다음 출력이 다른가요?node.js : console.log()는 함수입니까?

function delay(x) { 
    console.log('Start of timeout'); 
    return x; 
}; 
setTimeout(function(){console.log('End of timeout');}, delay(5000)); 
console.log('Start to do something else'); 

.

function delay(x) { 
    console.log('Start of timeout'); 
    return x; 
}; 
setTimeout(console.log('End of timeout'), delay(5000)); // ??????? 
console.log('Start to do something else'); 
+1

첫 번째 예제에서는 나중에 호출 할 함수 인'setTimeout'을 전달하지만 두 번째 예제에서는'console.log'를 호출하고 반환 값을'setTimeout' 함수에 전달합니다. –

+1

setTimeout의 첫 번째 매개 변수는 함수이며, 첫 번째 코드 단편에서 함수를 전달합니다 (ok). 두 번째 함수에서는 함수를 호출하므로 함수를 인수로 전달하지 않고 함수에서 반환 한 값 – lelloman

답변

1

예, console.log는 기능입니다.

첫 번째 조각은 setTimeout에 대해 예상되는 syntac을 사용합니다. 두 번째는 console.log 인라인으로 호출되며 undefined을 반환합니다. 이는 setTimeout의 첫 번째 인수입니다. 그것은 End of timeout이 나타나는 다른 타이밍을 설명합니다.