Det er forskel på en strengkonstant og et streng objekt
var strengKonstant = \"alert(\'hej\');\"; var strengObjekt = new String( \"alert(\'hejsa\')\" );
strengkonstanter kan lægges sammen strengKonstant += strengKonstant; nu vil eval( strengKonstant ); // fyrer to alerts af der siger \"hej\"
for at forlænge et strengobjekt må man bruge String.concat() metoden: strengObjekt.concat( strengKonstant ); nu vil alert( eval( strengObjekt ) ); // giver een alert \"alert(\'hejsa\');alert(\'hej\');\" eval( strengObjekt.valueOf ); // giver 2 alerts \"hejsa\" og \"hej\"
Nu har jeg prøvet at ultra forsimple mine koder. Men det virker stadig ikke. Jeg kan ikke forstå hvorfor det her ikke virker:
function writeon(letter) {
written.concat(letter) //skal lægges sammen
temp = \"letter.value.toString()\" alert(temp + \" : \" + eval(temp) ) temp = \"written.value.toString()\" //HER SIGER DEN written.value ER NULL ELLER IKKE ET OBJECT alert(temp + \" : \" + eval(temp) ) }
Hvis jeg alternativt bruger letter.valueOf() som foreslået laver den ligeledes fejl. med letter.valueOf //uden parantheser bliver undefined, mens written.valueOf siger noget med native kode...
Det eneste sted jeg kender hvor det kan være nyttigt at bruge et string objekt er ved overførsel af string parametre, og selv der kan man undgå dem på anden vis.
>>hanajacob : Som JakobA siger og en tilføjelse kunne være: sæt i hvert fald ; de steder, hvor det er ulovligt ikke at sætte dem (i princippet fjerner (burde fjerne) java al whitespace, før det fortolkes og køres, så linjeskift og sådan noget l... virker ikke som kommando/statement-deler.
Det er noget med at strengkonstanten midlertidigt bliver lavet om til et opbjekt når man bruger den somom den var et. du kan sågar sige: alert( \"abcdefghij\".length );
Tusind tak for hjælpen. Jeg fandt vist nok også ud af lidt selv, nemlig at strengen blev afleveret fra indtastningen som et objekt og linien letter = letter.value derfor var nødvendig.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.