Autor Zpráva
iqtest
Profil *
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
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 *
_es:
vďaka, a nebolo by lepšie priradiť atribútu hodnotu undefined? alebo tam dať výnimku?
Witiko
Profil
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
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)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0