728x90
자바스크립트는 null과 undefined 타입을 제외하고 모든 것을 객체로 다룬다.
함수를 변수 or 다른 함수의 변수처럼 사용할 수 있다. 함수를 콜백함수로 사용할 경우, 함수의 이름만 넘겨주면 된다.
함수를 인자로 사용할 때 callback 처럼 () 를 붙일 필요가 없다는 것이다.
<script>
// 콜백(callback)
// 함수의 인수로 사용되는 함수
// setTimeout(함수, 시간)
function timeout(callback) {
setTimeout(()=>{
console.log('Callback function example');
callback()
}, 3000);
}
timeout(()=>{
console.log('Done!');
});
</script>
|
<script>
let allUserData = [];
// 콘솔에 결과를 찍는 함수
function LogFunc(userData) {
if ( typeof userData === "string") {
console.log("string : " + userData);
} else if ( typeof userData === "object") {
for (var item in userData) {
console.log(item + ": " + userData[item]);
}
}
}
// 두 개의 인자를 받아서 마지막에 콜백함수를 호출한다.
function getInput (options, callback) {
allUserData.push (options);
callback (options);
}
// getInput 함수를 호출할 때 , 우리는 LogFunc 함수의 이름을 인자로 넘긴다.
// LogFunc은 콜백함수가 되어 getInput 함수의 내부에서 동작 할 것이다.
getInput ({name:"배수지", items:"JavaScript"}, LogFunc);
getInput ("홍길동", LogFunc);
</script>
|
728x90
'React > morden javascript' 카테고리의 다른 글
자바스크립트 Object (0) | 2022.06.11 |
---|---|
자바스크립트 호이스팅(Hoisting) (0) | 2022.06.10 |
Javascript this and Class (0) | 2022.06.09 |
javascript 화살표 함수(람다식) (0) | 2022.05.27 |
변수 유효범위(Variable Scope) (0) | 2022.05.27 |