2016-06-15 30 views
0

JavaScript instanceofオペレータは、プロトタイプチェーンを使用してオブジェクトの型を返します。実際のクラスの型を取得する方法

たとえば、階層の下にあるとします。私は、任意のインスタンスが実際にRABITまたは動物またはオブジェクトで知りたいと思った場合

Rabit->Animal->Object->Null 

今、私はこれを行うことはできません。

if (rabbitObj instance of Animal) // true 
if (rabbitObj instance of Rabit) // true 
if (rabbitObj instance of Object) // true 

rabbitObjは実際にうさぎです。

プロトタイプのチェーンに従う代わりに、実際のタイプのインスタンスを取得する方法。

+3

「実際にはウサギですか?おそらく本当にこれを意味します:http://stackoverflow.com/a/1249554/438992 –

+0

それを取得していない、それはあなた自身の質問に答えているようです - > if(RabitのrabbitObjインスタンス)// true。これはあなたの質問に答えるはずです。 – Guillermo

+0

[JavaScriptでオブジェクトの型の名前を取得するにはどうすればよいですか?](http://stackoverflow.com/questions/332422/how-do-i-get-the-name-of-an-objects- type-in​​-javascript) – Annihlator

答えて

0

JavaScriptの委譲動作をクラスベースの言語継承として使用しようとしていますが、それらは異なるものです。 JavaScriptでは、オブジェクトとそのプロトタイプについて考える必要があり、継承の代わりに探しているものを達成するために委託がどのように機能するのかを理解する必要があります。

You Don't Know JS: this & Object Prototypes本のPrototypesの章のプロトタイプシステムと委任システムの詳細をご覧ください。

関連する問題