12 авг. 2010 г.

Честный undefined

В коде jQuery наткнулся на красивый способ получения «честного» undefined:

(function(undefined) {

// тут мы имеем настоящий undefined

})();

Напомню, что глобальный undefined можно легко переопределить:

window.undefined = 'some_value';

Вышеприведенный же способ позволяет иметь в своем коде настоящий, «защищенный» undefined, неподверженный переопределению извне.

Кроме этого, добавляются «бесплатные» бонусы:

  • undefined становится локальным внутри кода, обращение к нему будет быстрее, чем к глобальному undefined
  • внутри такого кода undefined будет пожат обфускаторами кода, в отличие от глобального

По-моему, очень изящно.