両方のtypeof document.querySelectorAll('a')
とdocument.getElementsByTagName('a')
はオブジェクトあるので、私は、なぜ私がこのようにメソッドを追加することはできません。Nodelist/HtmlColectionの新しいメソッドをプロトタイプで追加するには?
Object.prototype.method = function(){ alert(this); }
しかし、この作品:
a = document.getElementsByTagName('a');
a.__proto__.__proto__.method = function(){ alert(this); }
a.method();//object HTMLCollection
私が行う、a.__proto__ == a.constructor.prototype
を考えましたそれ?
これはあなたにとって役に立ちます:http://perfectionkills.com/whats-wrong-with-extending-the-dom/ –
'document.querySelectorAll( 'a')。constructor.name'は' 'NodeList ' '。それはあなたが 'NodeList.prototype.method'に直接割り当てることができることを意味し、期待通りに動作します(まともなブラウザでは) – clockworkgeek