TypeScript에서는 클래스가 함수 인스턴스의 생성자가 될 수 있습니까? 나는 다음과 같은 것을 상상한다 :TypeScript : 함수의 인스턴스를 만드는 클래스를 정의 할 수 있습니까?
2
A
답변
4
기술적으로 가능하다. (약간의 해킹이 필요하다. 나는 여기에 글을 쓸 필요가 없다.)하지만 정말로 이것을하고 싶지는 않다. 여기에 이유가 있습니다.
new
오퍼레이터는 그 __proto__
오퍼랜드 prototype
하는 새로운 물체 (하지 기능) 생성한다. 즉, 연산자 인 에 의해 반환 된 호출 가능 항목을에서 명시 적으로 생성자에서 반환하지 않는 한 호출 할 수 없습니다. 생성자에서 다른 뭔가를 반환하는 경우
, 그때 thing instanceof SomeThing
는 false
될 것입니다, 당신은 thing
에서 클래스의 prototype
방법을 사용할 수 있도록 않을거야. 따라서이 시점에서 실제로는 class
처럼 작동하지 않으며, 원하는 모든 작업을 수행 할 수있는 기능을 갖는 것이 좋습니다.
관련 문제
- 1. 속성이있는 함수의 typescript 정의
- 2. 사용자 정의 클래스를 해쉬 할 수 없도록 만드는 이유는 무엇입니까?
- 3. 자바 스크립트에서 함수의 인스턴스를 만드는 방법은 무엇입니까?
- 4. Typescript : 저장시 정의 파일을 만드는 방법은 무엇입니까?
- 5. 정의 함수의 최대 수
- 6. Amd를 사용하여 Typescript 클래스를 가져올 수 없습니다
- 7. 클래스를 정의하고 하나의 생성물로 인스턴스를 만드는 방법
- 8. TypeScript 디버그 변수 정의
- 9. 하위 클래스를 만드는 대신 클래스의 인스턴스를 만드는시기를 알고 있습니까?
- 10. 이미 정의 된 bash 함수의 소스를 나열 할 수 있습니까?
- 11. C#에서 함수의 제한 사항으로 델리게이트를 정의 할 수 있습니까?
- 12. 함수의 인수의 이름을 동적으로 정의 할 수 있습니까?
- 13. Unity가 인스턴스를 어떻게 해결하는지 사용자 정의 할 수 있습니까?
- 14. 대리자 인스턴스를 클래스 외부에서 정의 할 수 있습니까?
- 15. 추상 클래스의 정적 인스턴스를 어떻게 정의 할 수 있습니까?
- 16. 한 클래스의 인스턴스를 다른 클래스의 속성으로 처리 할 수 있습니까?
- 17. 다른 클래스를 인스턴스화 할 수있는 클래스를 제한 할 수 있습니까?
- 18. 리스트와 거의 같은 클래스를 어떻게 정의 할 수 있습니까?
- 19. 사전 정의 키를 정의 할 수있는 클래스를 만드는 방법은 무엇입니까?
- 20. Void는 실제로 인스턴스를 해제 할 수 있습니까?
- 21. 클래스를 만들 수있는 방법 A.B 인스턴스를 만들 수 있습니까?
- 22. 하스켈 : 세트에 대한 타입 클래스를 어떻게 정의 할 수 있습니까?
- 23. 스타일 속성을 사용하여 클래스를 정의 (재 지정) 할 수 있습니까?
- 24. Ruby에서 다른 범위에 숨겨진 클래스를 정의 할 수 있습니까?
- 25. 클래스를 사용하여 jQuery 자식 선택기를 정의 할 수 있습니까?
- 26. C++에서 struct 내부에 클래스를 정의 할 수 있습니까?
- 27. Java : java.awt.image에 사용자 정의 클래스를 추가 할 수 있습니까?
- 28. Vs 2012 natvis : xml에 클래스를 정의 할 수 있습니까?
- 29. 키 기능의 객체를 사용하여 런타임에 클래스를 정의 할 수 있습니까?
- 30. getInstance() 메서드를 사용하지 않고도 Singleton 클래스를 정의 할 수 있습니까?
@ Ryan의 탁월한 답변에 덧붙이려고합니다. 당신이하려는 것을 달성하기 위해 '수업'이 필요하지 않습니다. 또 다른'function'을 반환하는'function'을 만들면됩니다. 필요한 경우 [closure] (https://developer.mozilla.org/en/docs/Web/JavaScript/Closures) (외부 함수)를 사용하여 추가 구성을 "저장"할 수 있습니다. –