[Edge]。→、
object に constructor のプロパティ(プロトタイプ)を持っているかどうかを返します。
| object | 確認するオブジェクト。 |
|---|---|
| constructor | object に対して確認を行う関数名、オブジェクト。 |
論理値。true: インスタンスである。false: そうではない。
N=123; D=N instanceof Number; //=[boolean]:false N=new Number(123); D=N instanceof Number; //=[boolean]:true
A={p:10};
D=A instanceof Object; //=[boolean]:true
B=A;
D=B instanceof A; //エラー発生:Right-hand side of 'instanceof' is not callable
function C(){}
D=C instanceof Function; //=[boolean]:true
function C(){}
F=new C();
D=F instanceof C; //=[boolean]:true
D=F instanceof Object; //=[boolean]:true
A={p:10};
Object.setPrototypeOf(F, A); //Fに新しいプロパティを設定。
D=F instanceof C; //=[boolean]:false。プロパティが一致しない?。
Object.setPrototypeOf(C, A); //Cに新しいプロパティを設定。
D=F instanceof C; //=[boolean]:false。あくまでも違うようだ。
D=F.p; //=[number]:10
function C(){}
F=new C();
D=F instanceof C; //=[boolean]:true
F.p=10; //プロパティ追加。
D=F instanceof C; //=[boolean]:true。プロトタイプではないから一致?。
function C(p){
this.pro=p;
}
F=new C();
D=F instanceof C; //=[boolean]:true
F.pro=10; //値を入れる。
D=F instanceof C; //=[boolean]:true。値が変わってもOK。