Javascript.RU

with

Добавить новую область видимости

Синтаксис

with (object)
  statement

Аргументы

object
Добавить указанный объект в цепочку областей видимости. Может быть любое выражение, скобки вокруг обязательны.
statement
Блок или javascript-вызов для выполнения внутри дополненной области видимости

Описание, примеры

В следующем примере вычисления выполняются с областью видимости, расширенной объектом Math.

var a, x, y;
var r = 10;
with (Math) {
  a = PI * r * r;
  x = r * cos(PI);
  y = r * sin(PI / 2);
}

Более частый пример:

with(element.style) {
    position = 'relative'
    top = left = '5px'
}

При поиске переменной внутри with, интерпретатор сначала проверяет свойства object. Если свойства с таким именем нет - он идет дальше вверх по областям видимости.

Использование with с одной стороны наглядно, с другой - может скрывать ошибки программирования и соответствующий код плохо сжимается компрессорами.

По этим причинам использовать with не рекомендуется.

Вместо этого можно использовать чуть менее наглядный, но надежный доступ через временную переменную:

Пример: переменная вместо with
s = element.style
s.position = 'relative'
s.top = s.left = '5px'

Автор: Архинамон (не зарегистрирован), дата: 1 августа, 2010 - 19:23
#permalink

Аналог using namespace своеобразный) Полезный, ибо обычные переменные захламляют рабочий namespace.


Автор: Гость (не зарегистрирован), дата: 21 января, 2011 - 01:08
#permalink

Синтаксис кодов поправьте, точек с запятой нет.


Автор: trikadin, дата: 14 июля, 2011 - 16:07
#permalink

Го учить матчасть. Точка с запятой в javascript не обязательны.


Автор: Гость (не зарегистрирован), дата: 10 ноября, 2011 - 21:53
#permalink

но желательны. Го учить матчасть


Автор: АндрейMercury (не зарегистрирован), дата: 18 января, 2012 - 03:58
#permalink

Точка с запятой может и необязательна в javascript, но очень желательны в наглядных примерах для обучения новичков, т.к.
код; код; - будет работать, а
код код - работать не будет и новичка это может поставить в тупик, да и привыкать полезно ведь во всех остальных языках (си, паскаль, actionscript, пхп и т.п.) это правило обязательно!


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
3 + 2 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние обсуждения на форуме
Forum
Последние комментарии