해당 프로퍼티는 caller와 마찬가지로 비표준이었다가 ES6에서 정식 표준이 되었다. name 프로퍼티는 함수 이름을 나타낸다. 다만, 이 함수는 ES5와 ES6에서 동작이 다르다. const nameFu = function test() {}; console.log(nameFu.name); // test 만약 익명 함수 표현식의 경우 ES5에서는 빈 문자열을 가졌지만 ES6에서는 함수 객체를 가리키는 식별자를 값으로 갖게 됐다. 참고로 함수 객체를 가리키는 식별자와 함수 이름은 다르다. // name은 식별자, test는 함수 이름이다. const name = function test() {};
함수 객체의 length 프로퍼티는 함수에 선언한 매개변수의 개수를 나타낸다. function test() {} console.log(test.length); // 0 function fee() {tax, legal} { tax + legal; } console.log(fee.length); // 2 다만 앞서 후술한 arguments 객체의 프로퍼티 값과는 다를 수 있다. arguments 객체의 length 프로퍼티는 인자의 개수를 가리키며 length 프로퍼티는 매개변수의 개수를 가리키기 때문이다. 해당 문서를 읽어보면 알 수 있지만, arguments 객체는 매개변수보다 인자의 개수가 많더라도 저장해주기 때문이다.
다음의 항목을 만족하는 객체를 일급 객체라 한다. 조건 1 무명의 리터럴로 생성할 수 있다. 런타임 생성이 가능하다는 의미다. 2 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 3 함수의 매개변수에 전달할 수 있다. 4 함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 모두 만족하기 때문에 일급 객체다. // 1. 무명의 리터럴로 생성할 수 있다. // 2. 변수에 저장할 수 있다. const plus = function(a, b) { return a+b; }; const minus = function(a, b) { return a-b; }; // 2. 객체에 저장할 수 있다. const operator = { plus, minus } // 3. 함수의 매개변수에 전달할 수 있다. // 4..
- Total
- Today
- Yesterday
- 프론트엔드
- react
- 타입좁히기
- 도서리뷰
- 대학생플리마켓
- 비즈플리마켓
- 소사벌맛집
- 책추천
- 우아한테크코스
- 카드뉴스
- 프리코스
- 플리마켓운영
- 경험플리마켓
- 어휘력
- 어른의어휘공부
- 프로토타입
- 대학생팝업스토어
- 카페추천
- 회고
- 코딩테스트
- 서평
- 소사벌
- 플리마켓후기
- 안성스타필드
- 일급객체
- 트러블슈팅
- typescript
- js
- javascript
- 도서추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |