Buffer.prototype = new Array();
Helló guruk!
Az Array osztályt szeretném kiterjeszteni, egy buffer-t szeretnék html elemeknek, amit css selector-okkal tudok feltölteni és arra gondoltam az alap Array tökéletes alap lenne, de pl a splice metódusnál a length tulajdonság változik csak rendesen az elemek, indexek ott maradnak ha nem szurok be új elemet (mondjuk ezt ki lehet küszöbölni), de azért érdekelne, hogy, valaki próbált már ilyesmit? Csak szeretném elkerülni a napig tartó tesztelést minden böngészőn azért kérdezem, hogy lehet e így csinálni működnek e a örökölt metódusok?
■ Az Array osztályt szeretném kiterjeszteni, egy buffer-t szeretnék html elemeknek, amit css selector-okkal tudok feltölteni és arra gondoltam az alap Array tökéletes alap lenne, de pl a splice metódusnál a length tulajdonság változik csak rendesen az elemek, indexek ott maradnak ha nem szurok be új elemet (mondjuk ezt ki lehet küszöbölni), de azért érdekelne, hogy, valaki próbált már ilyesmit? Csak szeretném elkerülni a napig tartó tesztelést minden böngészőn azért kérdezem, hogy lehet e így csinálni működnek e a örökölt metódusok?
Miért kell ezt ennyire
Én nem gondoltam hogy ez túl
Nem kizárt, hogy lehetséges,
DOMAssistant
Ilyesmi
Ezzel kapcsolatban egy
prototype
Array.prototype
metódusait, mert ha véletlenül megváltozna athis._data
típusa, vagy annak metódusai, akkor is az elvárt módon működjenek a tömb függvények rajta (kivéve ha pont a módosított működés lenne az elvárt). Ezen kívül, mivel azArray.prototype
metódusai statikusabbnak tűnnek, jobb megközelítésnek tűnik azok használata, mint a dinamikusan létrejött tulajdonságéi. Természetesen nem kell követni az én elgondolásomat, de én így látom helyesebbnek a megközelítést (és valószínűleg teljesítményben a két megközelítés azonos sebességet fog mutatni).Problémák
Írtam egy egyszerű kis kódot:
Length: 1
. Természetesen IE6-7 esetében a kiírásLength: 0
értéket mutat. Innentől kezdve érdemes elgondolkodni azon, hogy érdemes-e natív objektumokat kiterjeszteni, ha használni is akarjuk azoknak pár "mágikus" tulajdonságát. Arra már nem is merek gondolni, mi történne akkor, ha mondjuk nembuffer.push
-t használtam volna, hanembuffer[100] = 'A'
. Elárulom, egyik se módosítja a.length
értékét.A címmel kapcsolatban pedig elárulom, hogy a
new Array()
-re semmi szükség, a[]
rövidebb, és ugyanazt csinálja.Tényleg csak a 8-astol megy
Úgy látom bele kel törődnöm, hogy a DOM osztályok után ez sem fog menni. Marad az Array újra írása Buffer néven, nem tudom mért kezdtem el javascript-et tanulni...
ezt tudom csak szépen akartam leírni :D
Ez nem a javascript, hanem az
Egyébként mindent olyan szépen meg lehetne csinálni js-ben, ha nem létezne az a böngésző... Én is nyugodtabban aludnék... :D
Chrome-ban és Opera-ban
Én msie miatt már nem