작성
·
169
1
var get = function(one) {
return arguments
};
get("A", "B");를 했을때
위의 arguments라는건 원래 저렇게 사용하는 obj가 있고
사용하는 문법이 저렇게 사용한다는 건가요?
그리고 var get = function(one){
return arguments;
}
get(77,100);
이러게 입력했을때 결과는
답변 3
0
Function, Object, Argument 모두 독립된 오브젝트이며 child 개념을 갖지 않습니다.
다만, function abc(){}처럼 function 키워드를 만나면 __proto__를 가진 function 인스턴스를 만들게 되는데요, 이때 __proto__에 Object.prototype에 연결된 6개 메소드가 연결됩니다. 그래서 마치 child처럼 보일 수 있지만, child 개념보다 연결, 확장 개념이라고 할 수 있습니다.
// Object도 Global 객체의 child다. ==> Object, Global 모두 독립된 오브젝트로 child 개념이 성립되지 않습니다.
// 빈 파일 자체가 Golbal scope 라고 이해해도 되겠습니까? ==> 빈 파일이 무엇을 뜻하는지 알 수 없지만, Global 오브젝트와 Global scope는 개념이 다릅니다. 상황에 따라 같은 개념으로 볼 수도 있고 Global 오브젝트가 Global 스코프가 되지만, 뉘앙스가 다릅니다.
0
감사합니다. 한가지만 더 여쭤보자면
// Function() 함수는 Object객체의 child이고 Argument는 Functio() 함수의 child다.
// Object도 Global 객체의 child다.
// 빈 파일 자체가 Golbal scope 라고 이해해도 되겠습니까?
0
의미적으로 맞습니다만, 부언 설명을 하면
함수가 호출되면 자동으로 Argument 오브젝트(객체)를 만듭니다. 그리고 호출한 함수에서 넘겨준 모든 파라미터 값을 Argument 오브젝트에 {0: 77, 1: 100}처럼 Array-Like 형태로 저장합니다. 함수 안에서 Argument 오브젝트의 값을 arguments로 사용할 수 있습니다. arguments[0]은 77을 반환합니다. 함수를 빠져 나오면 자동으로 Argument 오브젝트를 삭제합니다.