私は別のオブジェクトが互いにarelationshipを持っているかどうかを確認するために、この機能をしようとしていたので、私は試してみました:Javascriptの作成方法isPrototypeOf関数はtrueを返しますか?
var o={name:'abc'};
var o2=o;
console.log(o.isPrototypeOf(o2));
console.log(o2.isPrototypeOf(o));
まあ、それは2 falsesを印刷します。 「プロトタイプ」は各関数/オブジェクトのプロパティ/関数なので、JSはどのオブジェクトが別のオブジェクトのプロトタイプであるかをどのように判断するのでしょうか?
は、私も試してみました:私は2 truesを期待しながら、
var Person=function(){
name='abc',
age=30
};
var o1=new Person();
var o2=new Person();
console.log(o1.isPrototypeOf(o2));
console.log(o2.isPrototypeOf(o1));
ここでも、それは、2 falsesを印刷します。
インフィニティ。 'a'の' b'と 'b'のproto、それは起こりません。 – Tushar
オブジェクト参照を変数に代入するだけです。これはプロトタイプとは関係ありません。プロトタイプチェーンを作成するには、 'new'か' Object.create'のどちらかを使う必要があります。 – ftor
'isPrototypeOf'のドキュメントをもう一度読んでください。一方のオブジェクトを実際にもう一方のプロトタイプにすることによって、isPrototypeOf'関数がtrueを返すようにします。 –