sto cercando di spessorare Element.prototype.children
che dovrebbe restituire un HTMLCollectioncreare un HTMLCollection
C'è un window.HTMLCollection
Tuttavia
var h = new HTMLCollection();
//TypeErrror: HTMLCollection is not a constructor
e
var h = Object.create(HTMLCollection.prototype);
h[0] = div;
h.item(0);
// Could not convert JavaScript argument
test Firefox 7 e Chrome
Oltre allo shimming HTMLCollection
c'è un modo per interagire con esso?
anche fornire feedback su this github issue se si può suggerire una soluzione
Credo che il modo corretto per farlo sia definire il proprio costruttore personalizzato 'MyHTMLCollection' e quindi usarlo al posto del costruttore host' HTMLCollection' (che non è affidabile) –
Mentre non posso rispondere alla tua domanda specifica su HTMLCollection, è generalmente considerato una cattiva pratica estendere gli oggetti DOM (hosted) nativi. Vedi questo articolo per una spiegazione dettagliata del perché: http://perfectionkills.com/whats-wrong-with-extending-the-dom/ – skyline3000
@ skyline3000 Sono perfettamente consapevole delle conseguenze. Dobbiamo fare questo per generare un DOM-shim. Non stiamo estendendo il DOM con metodi personalizzati (malvagi) ma con metodi che dovrebbero esistere secondo la specifica DOM4 – Raynos