TIL/Javascript
[Javascript] 함수도 객체다
홍차23
2020. 12. 3. 12:17
자바스크립트에서 함수는 일급객체다.
* 일급객체의 특징
- 변수나 프로퍼티의 값으로 할당될 수 있다.
- 함수 인자로 전달될 수 있다.
- 리턴값으로 활용될 수 있다.
- 동적으로 프로퍼티를 생성할 수 있다.
1. 변수나 프로퍼티의 값으로 할당
var foo = function(){
console.log('foo변수에 익명함수를 담았습니다.');
}
var obj = {};
obj.age = function(){
return 100;
}
2. 함수 인자로 전달
var foo = function(){
return 100;
};
var goo = function(value) {
console.log(value)
};
goo(foo());
3. 리턴값으로 활용
var foo = function(){
return function(){
console.log('this is function');
}
}
//방식1
console.log(foo()); //익명함수 반환
console.log(foo()()); //익명함수의 리턴값을 반환 'this is function'
//방식2
var bar = foo(); //리턴값으로 전달되는 함수를 bar변수에 저장
bar(); //()함수 호출 연산자를 활용해서 리턴된 함수 실행
4. 동적으로 프로퍼티 할당 가능
function run(){
console.log('run run');
}
run.speed = 100;
console.log(run.speed);