Если вы рассматриваете цепочку областей действия слушателя событий, в первом случае он должен разрешить идентификатор dofind для объектов в цепочке областей действия слушателя. Предположительно, он не будет найден ни на одном промежуточном объекте и будет найден на глобальном объекте. Затем он будет называться.
Во втором случае идентификатор x должен быть разрешен в аналогичной (идентичной?) Цепочке областей действия, и после его обнаружения идентификатор dofind должен быть найден как свойство этот объект.
Логика говорит, что второй метод медленнее, потому что он длиннее. Однако движки JavaScript могут оптимизировать цепочки областей видимости и доступ к свойствам, если они того пожелают. Вполне вероятно (в современных браузерах), что последующие вызовы dofind будут выполняться напрямую, без ссылки на цепочку областей действия , если только механизм не считает, что цепочка могла быть изменена.
Тестирование в различных браузерах покажет, какие оптимизируют такие вызовы, а какие нет. Я думаю, вы обнаружите, что в общей производительности приложения разница в вызове незначительна, в частности, поскольку разрешение идентификатора будет происходить намного быстрее, чем пользователь может инициировать последовательность событий щелчка (вероятно, в 1000 и более раз).