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>

 

 

 

 

'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
블로그 이미지

Link2Me

,
728x90

PHP 에서 문자를 발송할 때 ***님이라고 이름을 변경해서 보내는 문자를 할 때 좋은 기능이 될 거 같아서 적어둔다.


<?php
$str = '안녕하세요. [name]님. 오늘 날씨가 참 좋습니다. 이번 모임은 OO에서 개최합니다.';
$arr = array('홍길동','이순신','김구','을지문덕');

foreach($arr as $name){ // 배열에만 동작하는 반복문 foreach문
    // 콜백을 이용한 정규 표현식 검색과 치환을 수행
    // preg_replace_callback ( $pattern , $callback , $str )
    // 매치가 발견되면 새 str 반환되고, 그렇지 않으면 변경되지 않은 str 가 반환
    $text_message = preg_replace_callback('#\[name\]#',
        function($match) use ($name) {
            return replaceForm($name);
        }, $str);
    echo $text_message.'<br/>';
}

function replaceForm($name) {
    static $idx = 0;
    $idx++;
    return str_replace('{{idx}}', $idx, $name);
}

?>


블로그 이미지

Link2Me

,