义齿
instanceofとconstructorは、通常、インスタンスとクラスの関係を判断するために使用されます.しかし,応用では,異なる側面の重点には異なる具体的な好みがある.それらのいくつかの特徴を見て、より適切な応用を見てみましょう.
次のコードを見てみましょう.
Personオブジェクトを作成した後、constroctorアプリケーションを設定してもinstanceofが機能しないことがわかりました.すなわち、ブラウザがインスタンスと関数(または関数のprototype)の関係を何らかの方法で判断できるインスタンスを作成します.prototypeを再び指すと、実際には2つの異なるメモリアドレスになります.インスタンスと新しいprototypeオブジェクトの間には何の関係もありません.だからinstanceofはfalseを返します.
すなわち,インスタンスオブジェクトとクラスの直接関係を判断するにはconstructorを設定して判断することができる.一方instanceofは継承に用いられ,オブジェクトとクラスの関係を判断することができる.
次のコードを見てみましょう.
function Person(){
}
var a = new Person();
alert(a instanceof Person);//true
Person.prototype = {
constructor:Person
}
alert(a instanceof Person);//false
Personオブジェクトを作成した後、constroctorアプリケーションを設定してもinstanceofが機能しないことがわかりました.すなわち、ブラウザがインスタンスと関数(または関数のprototype)の関係を何らかの方法で判断できるインスタンスを作成します.prototypeを再び指すと、実際には2つの異なるメモリアドレスになります.インスタンスと新しいprototypeオブジェクトの間には何の関係もありません.だからinstanceofはfalseを返します.
すなわち,インスタンスオブジェクトとクラスの直接関係を判断するにはconstructorを設定して判断することができる.一方instanceofは継承に用いられ,オブジェクトとクラスの関係を判断することができる.