2016-03-25 13 views
2

Разработчик моей команды отметил, что доступ к объекту с помощью точечной нотации выполняется быстрее, чем запись в виде скобок. Например:Является ли запись в скобках медленнее, чем обозначение периода для доступа к свойствам объекта?

var sample = { name: 'First Name' } 
var nameBracket = sample['name'] 
var namePeriod = sample.name 

В этом случае, их вера в то, что назначение namePeriod будет быстрее, чем nameBracket.

Это правда? Если да, то почему? Если нет, почему бы и нет?

Относительно: Как можно проверить эту гипотезу или аналогичный вопрос для определения скорости работы JS?

ответ

4

Если вы хотите попробовать протестировать различные подходы, кажется, что инструмент defacto - это jsperf.com.

Кто-то уже поставил под сомнение это и создал для него тест.

http://jsperf.com/dot-notation-vs-square-bracket-notation

Результаты кажутся примерно одинаковыми. Что вызывает slowdows, когда содержимое скобки является переменной - в этот момент компилятор больше не может сказать себе: «О, ['foo'] совпадает с .foo .. continue on!».

+1

Или когда содержимое представляет собой любое другое выражение, которое не является только строкой, 'obj [function() {for (var start = (новая дата) .getTime(); (новая дата) .getTime() Paulpro

+0

О, вы знаете, что я имел в виду: P – Stephen

 Смежные вопросы

  • Нет связанных вопросов^_^