Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > encodeURIComponent || escape


Автор: S2nek 9.7.2007, 22:31
Код

var a=encodeURIComponent||escape,

В чем назначение данного кода? Как я понимаю,  a присваивается (ссылка на?) метод encodeURIComponent  либо escape. В зависимости от каких факторов выбирается один из этих методов? Браузер?

ЗЫ. В понятиях плаваю, строго не судите.

Автор: Zeroglif 9.7.2007, 23:55
expression || expression

- вычисляем значение левой части;
- конвертируем его в значение типа Boolean;
- если true, то возвращается значение левой части;
- иначе вычисляется и возвращается значение правой части;

Конвертация происходит по внутренним алгоритмам в зависимости от типа, в нашем случае предполагается, что это функции (тип Object, конвертируется в true), то есть упрощённо говоря мы отлавливаем одну из 2-х функций, чтобы затем сохранить ссылку на неё в переменной. Зависит это от браузера (encodeURIComponent в пожилых браузерах просто отсутствует). Смущает только то, что идентификатор encodeURIComponent здесь unqualified, что может привести к ошибке при его вычислении, правильнее писать window.encodeURIComponent.

Автор: S2nek 10.7.2007, 09:13
Цитата(Zeroglif @  9.7.2007,  23:55 Найти цитируемый пост)

Конвертация происходит по внутренним алгоритмам в зависимости от типа, в нашем случае предполагается, что это функции (тип Object, конвертируется в true), то есть упрощённо говоря мы отлавливаем одну из 2-х функций, чтобы затем сохранить ссылку на неё в переменной. Зависит это от браузера (encodeURIComponent в пожилых браузерах просто отсутствует). Смущает только то, что идентификатор encodeURIComponent здесь unqualified, что может привести к ошибке при его вычислении, правильнее писать window.encodeURIComponent. 
Так и предполагал, спасибо за объяснение. А код выдран у гугла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)