Autor | Zpráva | ||
---|---|---|---|
iqtest Profil * |
#1 · Zasláno: 14. 5. 2011, 16:47:48
mám objekt pole:
var array = new Array(); Ako mám zmazať atribút u triedy Array? skúšal som toto: delete Array.prototype.push; aj toto: delete array.push; aj toto: delete Array.prototype.push; ... delete array.push; a keď som urobil toto: array.push("hodnota"); tak sa pridala hodnota do poľa |
||
_es Profil |
#2 · Zasláno: 14. 5. 2011, 17:19:10
iqtest:
> skúšal som toto: > delete Array.prototype.push; Teoreticky by to mohlo fungovať a v niektorých prehliadačoch to aj funguje, no v niektorých to je možno zakázané. Ak chceš znefunkčniť metódu Array.prototype.push, tak to spravíš jednoducho: Array.prototype.push = function(){}; |
||
iqtest Profil * |
#3 · Zasláno: 14. 5. 2011, 22:35:14
_es:
vďaka, a nebolo by lepšie priradiť atribútu hodnotu undefined? alebo tam dať výnimku? |
||
Witiko Profil |
#4 · Zasláno: 15. 5. 2011, 12:45:04 · Upravil/a: Witiko
iqtest:
Atribut bude mít od doporučení implementace praporek DontDelete a nic s tím nenaděláš. Přiřazení undefined by fungovat mělo, nicméně atribut bude stále enumerovatelný. |
||
_es Profil |
#5 · Zasláno: 16. 5. 2011, 09:49:48
iqtest:
Ešte je ďalšia možnosť: zmeniť celý objekt prototypu, no nie v každom prehliadači je možnosť jednoducho nakopírovať všetky vlastnosti objektu do iného objektu. (http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=111202#10) |
||
Časová prodleva: 13 let
|
0