본문 바로가기
매일코딩/자바스크립트 개념

[생활코딩 함수] 값으로서의 함수 2

by 인생여희 2017. 5. 31.
반응형

1.

<HTML>

<HEAD>

<TITLE> hamsoo</TITLE>

</HEAD>

<script>


// js에서는 함수도 객체다

//일종의 값이다.

//함수 a는 변수a에 담겨진 값이다.

function a(){}




// 함수는 객체의 값으로 포함될 수 있다. 

//객체의 속성값으로 담겨진 함수를 메소드라고 부른다.

car = {

    speed:function(){

    }

};




</script>

<BODY>


</BODY>

</HTML>



2

<HTML>

<HEAD>

<TITLE> hamsoo</TITLE>

</HEAD>

<script>

//함수는 값이기 때문에 다른 함수의 인자로 전달 될 수도 있다.


// 계산기 함수

function cal(func,num){


return func(num);

}


//더하기 함수

function increase(num){


return num+1


}



//빼기 함수

function decrease(num){


return num-1

}



// 함수 cal 에 인자로 increase와 1을 전달한다.

//cal은 첫번째 인자를 받아 함수를 실행하고 그 함수의 매개변수로 1을 전달한다.

// 해당함수 increase가 실행되고 매개 변수 1을 받아 계산 후 cal 함수로 리턴한다.

//cal은 해당 값을 리턴한다.


alert(cal(increase,1));


alert(cal(decrease,1));






</script>

<BODY>


</BODY>

</HTML>


3

<HTML>

<HEAD>

<TITLE> hamsoo</TITLE>

</HEAD>

<script>


//함수는 함수의 리턴 값으로도 사용할 수 있다.


function cal(mode){


var funcs = {

'plus': function(left,right){return left+right},

'minus':function(left,right){return left-right}

}

//함수 리턴

return funcs[mode];


}



//cal에 인자 값으로 특정 값을 넣으면 함수 반환 

// 그함수에 인자 값 전달

// 계산후 리턴


alert(cal('plus')(2,1));

alert(cal('minus')(2,1));


</script>

<BODY>


</BODY>

</HTML>



4.

<HTML>

<HEAD>

<TITLE> hamsoo</TITLE>

</HEAD>

<script>


//배열 값으로도 사용가능하다.


//배열 선언

var process = [

function(input){return input + 10},

function(input){return input * input},

function(input){return input / 2}

];


var input = 1;


for(var i = 0;i<process.length;i++){


input = process[i](input);


}


alert(input);


<!-- 값으로서의 함수 : 자바스크립트에서 함수는 값으로도 쓰일 수 있다(변수에 담기, 객체 안에 저장하기, 다른 함수의 인자로 사용하기, 함수의 리턴값으로 사용하기, 배열의 값으로 사용하기 등)  -->

<!-- -> first-class-object,citizen이라함 -->


<!-- *객체 안에서 key는 변수 역할, 속성이라고도 부르고 value에 함수가 담긴다면 이는 메소드라 부른다 -->

<!-- - 콜백함수 : 함수가 다른 함수의 인자로 사용됨으로써 그 함수의 내용을 완전히 바꿀 수 있는 것. -->

<!-- - 비동기처리 : 시간이 오래 걸리는 작업을 나중에 처리해서 일련의 작업을 순서대로 처리하지 않음으로써 사용의 편의성을 높이는 기법. -->

<!-- (일반 환경에서는 보이지 않고 서버 환경에서 구동된다) - 대표적으로 Ajax라는 기법이있음 -->


</script>

<BODY>


</BODY>

</HTML>





반응형

댓글