Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- 자바입출력
- jquery dom 계층 선택자
- 재귀
- jquery 이벤트 처리
- jquery 속성선택자
- parseInt()
- java lambda
- 알고리즘 그래프
- 자바 재귀 조합
- 자바 조합 재귀
- 자바
- 후위표기
- 서로소
- 순열코드
- 순열 재귀
- str to char array
- 자바스크립트 이벤트처리
- 상속
- char to str
- java Collections.sort()
- inner class
- 재귀함수
- 자바스크립트 이벤트중지
- 자바 순열 코드
- Interface
- jquery 필터선택자
- 조합 재귀
- 알고리즘
- java 내부 클래스
Archives
- Today
- Total
유블로그
자바스크립트 함수 객체 본문
var add = function (x, y) {
return x + y;
};
add.result = add(3,2);
add.status = 'OK';
console.log(add(4,3)); // 7
console.log(add.result); // 5
console.log(add.status); // OK
함수도 객체처럼 프로퍼티를 가질 수 있다.
자바스크립트에서 함수도 객체로 값으로 취급된다 !
- 리터럴에 의해 생성
- 변수나 배열의 요소, 객체의 프로퍼티 등에 할당 가능
- 함수의 인자로 전달 가능
- 함수의 리턴값으로 리턴 가능
- 동적으로 프로퍼티 생성 및 할당 가능
위와 같은 특징으로 함수는 일급 객체라고 부른다.
위키백과의 일급 객체 정의이다. 저 조건이 만족하면 일급 객체라고 한다.
(1) 변수나 프로퍼티의 값으로 할당
var obj = {};
obj.func = function () { return 100; };
console.log(obj.func()); // 100
(2) 함수 인자로 전달
var f = function (func) {
func();
};
f(function() {
console.log('hi');
});
// 출력 : hi
익명함수를 func 인자로 넘기면서 func를 실행할 수 있다.
(3) 리턴값으로 리턴
var f = function () {
return function() {
console.log('hi');
};
};
var bar = f();
bar();
// 출력 : hi
(4) 함수 객체의 기본 프로퍼티
함수를 console.dir() 로 출력해보면
arguments, caller, length, name, prototype, __proto__ 등이 나온다.
함수가 기본적으로 가지고 있는 프로퍼티가 있다는 얘기다.
- arguments 는 함수 호출 시 전달된 인자값
- caller 는 자신을 호출한 함수
- name 은 함수의 이름으로 익명함수의 경우 빈 문자열
- __proto__ 는 객체의 부모객체로 함수의 경우 (함수 부모객체) Function.prototype 객체다.
모든 함수의 부모 객체인 Function.prototype은- constructor
- toString()
- apply()
- call()
- bind()
를 가지고 있다.
- length 는 정상적으로 실행될 때 기대되는 인자의 개수 ( 즉, 함수에서 정의한 인자 수 )
- prototype 은 객체로서 constuctor 프로퍼티를 가진 객체를 가리킨다. 그 constuctor 프로퍼티는 자신과 연결된 함수를 가리킨다.
함수의 prototype은 함수 객체를 가리키는 constructor를 포함한 prototype 객체를 가리킨다.
'JavaScript & jQuery' 카테고리의 다른 글
자바스크립트 함수 호출과 this (0) | 2021.06.18 |
---|---|
자바스크립트 콜백함수, 즉시 실행 함수, 내부 함수 등 (0) | 2021.06.18 |
자바스크립트 함수, 함수 호이스팅 (0) | 2021.06.18 |
자바스크립트 연산자 (0) | 2021.06.17 |
자바스크립트 배열 (0) | 2021.06.17 |