function sum(a,b){
return a+b
}
console.log(sum(5,7)); // 출력 결과: 12
Node.js에서 함수는 표준으로 function 함수명(인자) 이렇게 구성 되어있다. 상단의 코드는 a,b의 합계를 출력하는 sum 함수이다.
var result = function(a,b){
return a+b
}
console.log(result(3,4)); // 출력 결과: 7
익명함수는 함수명이 필요없으며 변수에 함수를 넣으면 이름이 생겨서 호출할 수 있다. 맨 위처럼 덧셈을 나타낸 함수이며 결과는 다음과 같다.
객체(Object)는 현실의 존재하거나 생각할 수 있는 것이다. 객체는 배열과 상당히 유사한데 비교하면서 설명을 할 것이다.
배열은[data,data] 이렇게 대괄호([])를 통해 이루어지고 객체는{key:value,key:value} 중괄호({})를 통해 이루어져있다. 객체를 예제를 통해서 알아보도록 하겠다.
var color = {
'apple' : 'red',
'banana': 'yellow',
'chocolate': 'brown'
}
console.log(color.banaba);
console.log(color['banana']);
console.log('--------------------------------------------');
for(var name in color){
console.log('object =>', name, 'value =>', color[name]);
}
color라는 객체를 만들었고 위의 양식처럼 key:value 형식으로 구성되있다. color.banana를 출력하면 banana의 값인 yellow가 출력되고 다르게 출력하는 방식으로 color[‘banana’]도 출력된다.
for문 반복문에 name이라는 변수를 선언하고 color를 name 변수에 넣어줬다. for문을 통해서 color 객체의 key값과 value값이 출력되는 것을 확인할 수 있다.
var o ={
v1:'v1',
v2:'v2',
f1:function(){
console.log(o.v1);
},
f2:function(){
console.log(o.v2);
}
}
o.f1();
o.f2();
객체에는 함수도 넣을 수 있다. o라는 객체의 v1,v2,함수 f1,f2를 넣어주었다. 그리고 o.f1()과 o.f2()를 출력했을 때 value값인 v1과 v2가 출력되는 것을 볼 수 있다.
Java Script의 함수가 function으로 만드는 것은 알았는데 변수에 함수를 넣어서 함수명이 필요없는 익명함수는 처음 알았고 파이썬의 딕셔너리 이후로 오랜만에 보는 key값과 value값이라서 반가웠고 객체 안의 함수를 넣을 수 있는것이 신기하였다. 코드가 복잡해서 정리해야할 필요성을 느낄 때 자주 사용하면 도움이 될 것 같다.