[Javascript] 02-1. 함수 객체

Elen li·2021년 10월 27일
0
post-thumbnail

함수 객체: 함수도 객체다.

함수의 기본 코드 실행 및 객체처럼 프로퍼티들을 가질 수 있다.

// 함수도 객체처럼 프로퍼티 갖을 수 있음
function add(x, y) {
  return x + y;
}

add.result = add(3, 2);
add.status = 'OK';

console.log(add.result); // (출력값) 5
console.log(add.status); // (출력값) ‘OK’

자바스크립트에서 함수는 값으로 취급된다.

객체라는 것은 함수도 일반 객체처럼 취급될 수 있다를 의미합니다.
자바스크립트에서 함수는 ’일급 객체’로서 아래와 같은 동작이 가능합니다.

  • 리터럴에 의해 생성
  • 변수나 배열의 요소, 객체의 프로퍼티 등에 할당 가능
  • 함수의 인자로 전달 가능
  • 함수의 리턴값으로 리턴 가능
  • 동적으로 프로퍼티를 생성 및 할당 가능

1. 변수나 프로퍼티 값으로 할당

// 변수에 함수 할당
var foo = 100;
var bar = function() {
  return 100;
};
console.log(bar()); // (출력값) 100

// 프로퍼티에 함수 할당
var obj = {};
obj.baz = function() {
  return 200;
}
console.log(obj.baz()); // (출력값) 200

2. 함수를 인자로 전달

// 함수를 다른 함수의 인자로 넘긴 코드
var foo = function(func) {
  func(); // 인자로 받은 func() 함수 호출
}

foo(function() {
  console.log('Function can be used as the argument.');
});

3. 리턴값으로 활용

  • 함수는 다른 함수의 리턴값으로 활용할 수 있다.
var foo = function() {
  return function() {
    console.log(this function is the return value.);
  }
}

var bar = foo();
bar(); // (출력값) this function is the return value.

함수 객체의 기본 프로퍼티

profile
Android, Flutter 앱 개발자입니다.

1개의 댓글

comment-user-thumbnail
2021년 10월 27일

답글 달기