2009-06-04 8 views
4

Javascript-Objekte und JScript Wörterbuch sind beide assoziativen ArraysJavascript Object vs JScript Wörterbuch

obj = new Object ; 
dic = new ActiveXObject("Scripting.Dictionary") ; 

Meine Frage ist ... Gibt es einen Unterschied zwischen ihnen in Bezug auf die Effizienz (entweder zeitlich oder räumlich) ??
In Bezug auf die Funktionalität, ich weiß, ein Wörterbuch ist besser, weil es mehr als nur skalare Typen als Schlüssel erlaubt. Aber wenn man das beiseite legt, welches ist besser/schneller?

EDIT:
Dies ist für Windows Scripting, nicht für Web-Entwicklung.

EDIT2:
Ich bin besonders daran interessiert, die bei der Suche Effizienz, da ich mit großen Sammlungen zu arbeiten brauchen.

Antwort

2

Scripting.Dictionary ist eine COM/ActiveX-Komponente (kann in allen MS-Skriptsprachen verwendet werden).

Ich würde es nicht empfehlen, denn jedes Mal, wenn Sie darauf zugreifen, rufen Sie in die COM-Komponente, die sehr langsam ist.

Aber wenn man seine Funktionalität benötigen, können Sie es verwenden, aber Vorsicht, dass es funktioniert nur im IE ...

+0

Frage-Tags festlegen, dass es, so dass nur Fenster in WSH ist für den Betrieb, kein Browser ... –

+0

einfach zu erweitern auf, dass ein wenig - Scipting.Dictionary ist nicht JavaScript, es muss nur eine JavaScript-Schnittstelle in IE. – Quentin

+0

Nur um zu sagen, ich denke, es ist wichtig, den IE-Teil nur für jeden zu lesen, der dies liest, ohne WSH (wie ich es tat: P) – annakata

2

Javascript-Objekte in dem Ausführungs-Engine eigen sind; Scripting.Dictionary ist ein COM-Objekt, das bei jeder Operation Interop-Aufrufe ausführt.

Für alles, was in JavaScript aktivieren, würde ich dazu neigen, die im Motortyp lieber mit, wenn ich einen enormen Bedarf an einem auf einem anderen COM-Objekt mit guter Gleichheit Semantik basiert Lookup hatte ...

+0

Was ist mit der Suchzeit? Ich habe an sehr große Arrays gedacht, bei denen die Zeit, die für die Suche nach einem Schlüssel-Wert-Paar aufgewendet wird, der wichtigste Faktor ist. – GetFree

+0

Das hängt davon ab, ob ich eine Schleife auf Schlüsseln durchführe oder Nachschläge mache. Wenn Ihr Anwendungsfall aufgrund der Größe des gescannten Datasets Leistungsprobleme aufweist, ist eine Skriptsprache möglicherweise nicht der richtige Ort. –