기존 블로그에 작성한 내용을 velog로 이전한 글입니다
arguments 프로퍼티
함수 호출시 전달된 인수들의 정보를 담고 있는 순회 가능한 유사배열 객체.
함수 몸체 내부에서 변수와 동일하게 취급 됨.
변수 개수를 지정하지 않고 쓰는 법은 다음과 같다.
function sum(...args) {
return args.reduce((pre, cur) => pre + cur, 0);
}
length 프로퍼티
argument.length : 인자의 개수
함수.length : 매개변수의 개수
name 프로퍼티
기명 함수 표현식 : 함수이름
익명 함수 표현식 :
ES5 -> 빈문자열
ES6 -> 함수 식별자
// 기명 함수 표현식
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
프로퍼티