Javascript2 강제로 인스턴스 생성 function Func(num){ if(!(this instanceof Func)){ return new Func(num); } this.value = num ? num : 0; } var temp1 = new Func(100); var temp2 = Func(20); console.log(temp1.value); //100 console.log(temp2.value); //20 console.log(window.value); //undefined 2번째 라인을 this instanceof arguments.callee 를 사용하면 특정 함수의 이름과 상관없이 이 패턴을 공통으로 사용하는 모듈을 작성할 수 있다 2019. 12. 27. 생성자 함수가 동작하는 방식 Inside Javascript 책 내용 1. 빈 객체 생성 및 this 바인딩 생성자 함수 코드가 실행되기 전 빈 객체가 생성된다. 이 객체가 생성자 함수가 새로 생성하는 객체이며 이 객체는 this로 바인딩된다. 따라서 이후 생성자 함수의 코드 내부에서 사용된 this는 이 빈 객체를 가리킨다. 하지만 여기서 생성된 객체는 엄밀히 말하면 빈 객체는 아니다. 자바스크립트의 모든 객체는 자신의 부모인 프로토타입 객체와 연결되 있으며, 이를 통해 부모 객체의 프로퍼티나 메서드를 마치 자신의 것처럼 사용할 수가 있기 때문이다. 이렇게 생성자 함수가 생성한 객체는 자신을 생성한 생성자 함수의 prototype 프로퍼티가 가리키는 객체를 자신의 프로토타입 객체로 설정한다. 2. this를 통한 프로퍼티 생성 이.. 2019. 9. 13. 이전 1 다음