Codeit/JavaScript
값으로서 함수
효땡
2024. 8. 8. 15:29
자바스크립트
- 함수를 특별한 종류의 값으로 취급
- 자바스크립트의 함수는 어디에서나 할당될 수 있음
- 다양한 형태로 호출될 수 있음
const printJS = function () {
console.log('JavaScript');
};
console.log(typeof printJS); // function -> 실제로는 객체타입(Object)
const printJS = function () {
console.log('JavaScript');
};
// 함수호출
printJS(); // JavaScript
- 객체 안에 메소드로도 사용가능
const myObject = {
brand: 'Codeit',
bornYear: 2017,
isVeryNice: true,
sayHi: function(name) {
console.log(`Hi! ${name}`);
}
};
myObject.sayHi('JavaScript'); // Hi! JavaScript
- 배열에 담아서 호출가능
const myArray = [
'codeit',
2017,
true,
function (name) {
console.log(`Hi! ${name}`);
}
];
myArray[3]('Codeit'); // Hi! Codeit
- 값으로 평가되는 함수는 다른 함수의 파라미터로 전달가능
const myBtn = document.querySelector('#myBtn');
myBtn.addEventListener('click', function () {
console.log('button is clicked!');
});
function makeQuiz(quiz, answer, success, fail) {
if (prompt(quiz) === answer) {
console.log(success());
} else {
console.log(fail());
}
};
// 함수를 호출할 때 미리 선언된 함수를 전달하면서
// 조건에 따라 그 함수가 나중에 호출되거나 호출되지 않는 동작을 구현할 수 있음
function getSuccess() {
return '정답!';
};
function getFail() {
return '오답!';
};
const question = '5 + 3 = ?';
makeQuiz(question, '8', getSuccess, getFail);