Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
Software Development
>
Interpreters
>
DMonkey
>
Ticket-Liste / Suche
>
Ticket #3655
DMonkey
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
CVS
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Kommunikation
Foren
Forum-Liste
Hilfe (8)
Offene Diskussion (26)
Users (0)
Mailinglisten
Alle Mailinglisten
dmonkey-dev
Neuigkeiten
Ticket #3655
Ticket-Liste
Neue Ticket abschicken
RSS
関数に同じ配列変数を渡したときのバグ
Eröffnet am:
2004-01-01 04:53
Letztes Update:
2004-01-15 11:08
beobachte
ON
OFF
Auswertung:
qqrrm
Verantwortlicher:
(Keine)
Typ:
Fehler
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine
Details
Antworten
function abc(b,c){
b.delete(0);
alert(c.join('/'));
}
a=["d","e","f"];
abc(a,a);
//実行すると、e/fと表示されます。
Ticket-Verlauf (2/2 Historien)
2004-01-15 11:01
Aktualisiert von:
b2r
Kommentar
Antworten
Logged In: YES
user_id=4244
これはバグではありません。(^^;
引数として渡されるのは、配列(オブジェクト)への参照です。
配列の内容がコピーされるわけではありません。
詳しくは"参照渡し"と"値渡し"あたりでぐぐってください。
他のオブジェクト指向言語でも、たいていDMonkeyと同様の結果になり
ます。
ちなみに単なる代入も参照です。
次のコードも関数の引数として渡した時と同様の結果になります。
a = ["d", "e", "f"];
b = a;
b.delete(0);
alert(a.join("/"));
alert(b.join("/"));
値コピーしたい場合は、
a = ["d", "e", "f"];
b = a.slice(0);
b.delete(0);
alert(a.join("/"));
alert(b.join("/"));
とでもすれば、aとbが個別にデータを持ちます。
2004-01-15 11:08
Aktualisiert von:
b2r
Kommentar
Antworten
Logged In: YES
user_id=4244
文字化けしてますね・・・ (--)
すいません。
Dateianhangliste (
0
)
Dateianhangliste
Keine Anhänge
Bearbeiten
Kommentar hinzufügen
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Anmelden
Kommentar hinzufügen
Vorschau
Abschicken
b.delete(0);
alert(c.join('/'));
}
a=["d","e","f"];
abc(a,a);
//実行すると、e/fと表示されます。