728x90
반응형
일급객체
무명의 리터럴로 생성할 수 있다. 즉 , 런타임에 생성이 가능하다.
변수나 자료구조에 저장할 수 있다.
함수의 매개변수에 전달할 수 있다.
함수의 반환값으로 사용할 수 있다. (함수형 프로그래밍 = 함수의 매개변수에 전달, 반환값 사용)
const increase=function (num){
return ++num;
}
const decrease=function (num){
return --num;
}
const auxs={increase,decrease}
console.log(auxs);
함수가 일급 객체 -> 함수를 객체와 동일하게 사용가능
함수 객체의 프로퍼티

arguments,caller,length,name,prototype 프로퍼티는 모두 일반 객체에는 없는 함수 객체 고유의 데이터 프로퍼티다.
arguments 프로퍼티
함수 호출 시 전달된 인수들의 정보를 담고 있는 순회 가능한 "유사 배열 객체"이며, 함수 내부에서 지역 변수처럼 사용
-> 외부에서 참조불가
매개변수 개수를 확정할 수 없는 "가변 인자 함수 구현"에 유용함
function plus(a,b){
console.log(arguments)
return a+b
}
console.log(plus()) NaN으로 출력 (에러 발생안함)
function sum(){
let result=0;
for (let i = 0; i < arguments.length; i++) {
result+=arguments[i]
}
return result
}
console.log(sum()); 0
console.log(sum(1,2)); 3
ES6 Rest 파라미터
위에 arguments 대신 너무 좋은게 만들어졌다.
규칙
나머지 매개변수는 하나만 존재가능
나머지 매개변수는 다른 매개변수가 있을시 마지막 매개변수여야함
function sum(...theRes){}
function sum(one,two,...theRes){}
function sum(...one,...two){} XXXXXX 불가능
function sum(...theRes,one,two){} XXXXX 불가능
length 프로퍼티 - 매개변수의 개수를 나타내는것.
name 프로퍼티- 함수 이름을 나타냄
__proto__ 프로퍼티는 프로토타입때 자세하게 다룬다..
728x90
반응형
'JavaScript' 카테고리의 다른 글
| this / 실행 컨텍스트 (0) | 2022.06.09 |
|---|---|
| strict mode / 빌트인 객체 (0) | 2022.05.24 |
| 생성자 함수 (0) | 2022.05.14 |
| 스코프 / 프로퍼티 어트리뷰트 (1) | 2022.05.14 |
| 함수 (2) | 2022.05.09 |