1. 일급 객체
일급 객체의 조건은 다음과 같다.
- 무명의 리터럴로 생성할 수 있다.(런타임에 생성 가능)
- 변수나 자료 구조(객체, 배열 등)에 저장할 수 있다.
- 함수의 매개 변수에게 전달할 수 있다.
- 함수의 결과값으로 반환할 수 있다.
2. 함수 객체의 프로퍼티
arguments 프로퍼티
함수 호출시 전달된 인수들의 정보를 담고 있는 순회 가능한 유사배열 객체.
함수 몸체 내부에서 변수와 동일하게 취급 됨.
변수 개수를 지정하지 않고 쓰는 법은 다음과 같다.1
2
3function sum(...args) {
return args.reduce((pre, cur) => pre + cur, 0);
}length 프로퍼티
argument.length : 인자의 개수
함수.length : 매개변수의 개수name 프로퍼티
기명 함수 표현식 : 함수이름
익명 함수 표현식 :ES5 -> 빈문자열
ES6 -> 함수 식별자
1
2
3
4
5
6
7
8
9
10
11
12
13// 기명 함수 표현식
var namedFunc = function foo() {};
console.log(namedFunc.name); // foo
// 익명 함수 표현식
var anonymousFunc = function () {};
// ES5: name 프로퍼티는 빈 문자열을 값으로 갖는다.
// ES6: name 프로퍼티는 함수 객체를 가리키는 변수 이름을 값으로 갖는다.
console.log(anonymousFunc.name); // anonymousFunc
// 함수 선언문(Function declaration)
function bar() {}
console.log(bar.name); // bar
__proto__
접근자 프로퍼티[[Prototype]]
내부 슬롯에 접근하기 위한 접근자 프로퍼티.
prototype
프로퍼티
함수 객체만이 소유하는 프로퍼티.
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !