2009-06-04 5 views
4

Javascript Объекты и JScript словарь являются ассоциативные массивыJavascript Object против JScript словарь

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

Мой вопрос ... Есть ли разница между ними с точки зрения эффективности (ни в пространстве или во времени) ??
Что касается функциональности, я знаю, что словарь лучше, потому что он позволяет использовать не только скалярные типы, но и ключи. Но откладывать это в сторону, какой из них лучше/быстрее?

EDIT:
Это для сценариев Windows, а не для веб-разработки.

EDIT2:
Я особенно заинтересован в эффективности поиска, так как мне нужно работать с большими коллекциями.

ответ

2

Scripting.Dictionary является компонентом COM/ActiveX (может использоваться на любом из языков сценариев MS).

Я бы не рекомендовал его, потому что каждый раз, когда вы обращаетесь к нему, вы вызываете COM-компонент, который очень медленный.

Но если вам нужно ее функциональные возможности, вы можете использовать его, но учтите, что он работает только в IE ...

+0

Вопрос теги указывают, что это для работы в WSH, поэтому только окна, ни один браузер ... –

+0

Просто расширить на том, что мало - Scipting.Dictionary не JavaScript, он просто имеет интерфейс JavaScript в IE. – Quentin

+0

Просто хочу сказать, что важно отметить часть IE только для тех, кто читает это, не замечая WSH (как я: P) – annakata

2

объектов Javascript присущи исполнения двигателя; Scripting.Dictionary - это COM-объект, выполняющий вызовы interop для каждой операции.

Для чего-либо в JavaScript, я бы, как правило, предпочитают использовать тип в движке, если я не имел огромную потребность в поиска на основе какой-либо другой COM-объект с хорошей семантики равенства ...

+0

Как насчет времени поиска? Я думал о очень больших массивах, где наиболее важным фактором является время, затрачиваемое на поиск данной пары ключевых значений. – GetFree

+0

Это будет зависеть от того, запускал ли я цикл на ключах или выполнял поиск. Если ваш случай использования имеет проблемы с производительностью из-за размера сканируемого набора данных, возможно, язык сценариев не там, где вы хотите быть. –