• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

아래 질문글을 보고 정리해보았는데 제대로 정리한것인지 궁금합니다

21.01.31 20:50 작성 조회수 88

1

아래 질문글을 보고 저도 정리해보고 싶어 스스로 정리해 보았는데 맞게 정리했는지 문의드립니다

******

var f1 = function(){};
// function 표현식. function 오브젝트를 f1에할당
// ( 빌트인 Function 오브젝트로 만든 인스턴스인 function 오브젝트 )
console.log(Object.prototype.toString.call(f1));
// Global오브젝트가 호스트한 Window오브젝트안에 있는 Object.prototype.toString에 연결.
// 그후 call메소드로 Object.prototype.toString에 f1을 넘겨줌

// toString은 인스턴스'타입'을 '문자열'로 "표시"하므로
// [object Function] 반환

var f2 = new f1;
// f1 function 오브젝트(인스턴스)에서 f1.prototype안에있는 내용을
// constructor를 이용하여 인스턴스를 생성해 f2.__proto__에 할당

console.log(Object.prototype.toString.call(f2));
// 위와 마찬가지로 진행.하지만 f2는 f1의 인스턴스
// f2.__proto__의 타입은 Object이므로
// ( 강좌에서 설명해주신대로 빌트인 오브젝트안을까보면 거의 Object형태의
//  __proto__가 들어있으므로... 안들어가있는 것도 있다 )
// [object Object] 반환

var s1 = String;
// String 오브젝트를 s1에 할당
var s2 = new s1;
// s1 인스턴스를 생성하여 s2에 할당
console.log(Object.prototype.toString.call(s1));
// 위와 마찬가지로 진행. s1은 function 타입 이므로
// 즉, [object Function] 반환

console.log(Object.prototype.toString.call(s2));
// 위와 마찬가지로 진행. s1에서 String인스턴스를 생성하여 s2에 할당
// 즉, [object String] 반환

******

추신) 행복하게 강의 잘듣고있습니다.  좋은강의 만들어주셔서 감사합니다

답변 2

·

답변을 작성해보세요.

2

상세한 설명 감사드립니다. 진도를 나가면서 정리 하도록 하겠습니다

2

var f1 = function(){};
// function 표현식. function 오브젝트를 f1에할당
// ( 빌트인 Function 오브젝트로 만든 인스턴스인 function 오브젝트 )
==> 맞습니다. 다음부터는 주석을 코드 앞에 작성하세요. 주선 먼저 작성
----------------------

console.log(Object.prototype.toString.call(f1));
// Global 오브젝트가 호스트한 Window 오브젝트안에 있는 Object.prototype.toString에 연결.
==> 이 문장은 완전하지 않습니다. Global 오브젝트와 Window 오브젝트를 염두에 두고 정리하기 바랍니다. Host 오브젝트 개념 정리도 필요합니다.
// 그후 call메소드로 Object.prototype.toString에 f1을 넘겨줌
// toString은 인스턴스'타입'을 '문자열'로 "표시"하므로 [object Function] 반환
==> 맞습니다.
----------------------

var f2 = new f1;
// f1 function 오브젝트(인스턴스)에서 f1.prototype안에있는 내용을
// constructor를 이용하여 인스턴스를 생성해 f2.__proto__에 할당
==> 의미적으로 맞습니다. new f1보다는 new f1() 형태가 일반적인 형태입니다.
f1.prototype안에있는 내용을 ==> f1.prototype에 연결된 메소드와 프로퍼티를
----------------------

console.log(Object.prototype.toString.call(f2));
// 위와 마찬가지로 진행.하지만 f2는 f1의 인스턴스
// f2.__proto__의 타입은 Object이므로
// ( 강좌에서 설명해주신대로 빌트인 오브젝트안을까보면 거의 Object형태의
//  __proto__가 들어있으므로... 안들어가있는 것도 있다 )
// [object Object] 반환
==> 전체적으로 구성과 의미를 이해하고 있으며 맞습니다.
"거의 Object형태의 __proto__가 들어있으므로" ==> 이 문장이 갖는 의미를 공부하면서 하나씩 완전하게 정리하기 바랍니다.
----------------------

전체적으로 기능과 구조와 개념을 이해하는 것으로 생각됩니다.
조금 더 정리할 것이 있지만, 여기서 더 파고 들면 진도가 나가지 않아 지겨우며, 이 단계에서 완전하게 정리할 수도 없으므로 여기의 구조와 개념을 염두에 두고 진도를 나가면서 정리하기 바랍니다.