2011-05-09 6 views

답변

36

의 동등한 찾고 있어요 당신은 객체가 특정 클래스의 후손 여부를 테스트 할 수 있습니까? 그런 다음 instanceof 키워드가 필요합니다. (그것은 커피 스크립트에 의해 추가 된 것이 아니라, 그것은 자바 스크립트의 일부입니다.) 당신이

class A 
class B extends A 
class C extends B 

를 작성하는 경우 그 다음이 참 있도록 커피 스크립트 클래스가 설정됩니다 :

(new A) instanceof A 
(new B) instanceof B and (new B) instanceof A 
(new C) instanceof C and (new C) instanceof B and (new C) instanceof A 

또한, 모든 개체 것 instanceof Object에 대해 true을 반환하십시오.

특정 클래스의 인스턴스가 인스턴스인지 테스트하려면 .constructor을 사용하십시오. 예를 들어,

(new B).constructor is B 

경우, 또는 당신은, 문자열을 사용하는

(new B).constructor.name is 'B' 
+0

:

그래서 내가 생각 해낸 것은 이것이다. 그건 손톱 :) – flitzwald

+1

코드가 축소되면 Constructor.name이 작동하지 않는다 – DrSammyD

0

나 클래스의 인스턴스를 생성하는 것은 잘못된 느낌을 싶습니다. 생성자가 예상 할 수있는 매개 변수는 알 수 없습니다. 쿨

class A 
class B extends A 

console.log B.__super__ is A.prototype# => true 
+0

이것은 Ruby의''blah ".is_a? (String)'과 동일하지 않다. –

관련 문제