2016-08-25 4 views

답변

4

기술적으로 가능하다. (약간의 해킹이 필요하다. 나는 여기에 글을 쓸 필요가 없다.)하지만 정말로 이것을하고 싶지는 않다. 여기에 이유가 있습니다.

new 오퍼레이터는 그 __proto__ 오퍼랜드 prototype하는 새로운 물체 (하지 기능) 생성한다. 즉, 연산자 인 에 의해 반환 된 호출 가능 항목을에서 명시 적으로 생성자에서 반환하지 않는 한 호출 할 수 없습니다. 생성자에서 다른 뭔가를 반환하는 경우

, 그때 thing instanceof SomeThingfalse 될 것입니다, 당신은 thing에서 클래스의 prototype 방법을 사용할 수 있도록 않을거야. 따라서이 시점에서 실제로는 class처럼 작동하지 않으며, 원하는 모든 작업을 수행 할 수있는 기능을 갖는 것이 좋습니다.

+2

@ Ryan의 탁월한 답변에 덧붙이려고합니다. 당신이하려는 것을 달성하기 위해 '수업'이 필요하지 않습니다. 또 다른'function'을 반환하는'function'을 만들면됩니다. 필요한 경우 [closure] (https://developer.mozilla.org/en/docs/Web/JavaScript/Closures) (외부 함수)를 사용하여 추가 구성을 "저장"할 수 있습니다. –

관련 문제