본문 바로가기
TIL/Javascript

[Javascript] 함수도 객체다

by 홍차23 2020. 12. 3.

자바스크립트에서 함수는 일급객체다. 

 

* 일급객체의 특징

- 변수나 프로퍼티의 값으로 할당될 수 있다.

- 함수 인자로 전달될 수 있다.

- 리턴값으로 활용될 수 있다.

- 동적으로 프로퍼티를 생성할 수 있다.

 

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);

 

댓글