多くの時間を実験した結果、__proto__
またはObject.getPrototypeOf()
メソッドがDOMオブジェクトのプロトタイプチェーンをトラバースする正しい方法だと分かりました。Firefoxとchromeの動作の違いはconstructor.prototypeですか?
一連のconstructor.prototypeを使用すると、実際には両方のブラウザでプロトタイプチェーンをトラバースしません(これはECMA標準で定義されている方法ですが、コンストラクタのプロトタイププロパティはプロトタイプオブジェクトです)。
任意の提案やコメントは歓迎されて...
p1 = document.getElementById("test"); // div element
//Prototype Object of p1
p2 = element.constructor.prototype;
//Prototype object of p2
p3 = element.constructor.prototype.constructor.prototype;
console.log(p2 === p3); // true in chrome(howcome they same ?), false in firefox
q2 = element.__proto__;
q3 = element.__proto__.__proto__;
console.log(q2 === q3); // false in both browser