본문 바로가기
Today I learned

여러가지 연습 코드

by soheemon 2020. 6. 17.

// Array를 인자로 받아서 순환출력하는 함수

클로저 연습코드. 외부함수에 스코프가 생기고 값이 유지되는것이  인상깊었음.

/* Array를 인자로 받아서 순환출력하는 함수 */
function printArrayCircle(array){
    if(!array)return function(){}
    if(!array.hasOwnProperty("length")) return function(){}

    var nowIndex,endOfIndex;
    nowIndex = 0;
    endIndex = array.length - 1;

    return function(){
        console.log(array[nowIndex]);
        (nowIndex < endIndex) ? nowIndex++ : nowIndex = 0;
        
    }
}

/* 테스트 */
test = printArrayCircle([1, 2, 3]);

test(); // 1
test();	// 2
test();	// 3

// 최초에 받은 인자를 하나씩 증가하는 함수

function idMaker(start){
    start = start || 0
    return function(){
        return ++start;
    }
}

var msgcid = idMaker();
msgcid();	//0
msgcid();	//1
msgcid();	//2
msgcid();	//3
msgcid();	//4

 

'Today I learned' 카테고리의 다른 글

[OAuth2] 권한 부여 종류  (0) 2020.06.19
[OAuth2] 기본개념 복습(용어정리)  (0) 2020.06.19
Real World HTTP  (0) 2020.06.15
[js]헷갈리는 문법 정리  (0) 2020.06.15
[마케팅 솔루션]GA 개발 관련 문서 정리 (2)  (0) 2020.05.25

댓글