Это не функция (как было указано в заголовке вопроса до того, как она была отредактирована), а утверждение. Это может иметь больше смысла, если пример кода отформатирован так:
with (sObj){
return options[selectedIndex].value;
}
Относительно того, что он делает ( Источник )
Оператор with устанавливает объект по умолчанию для набора операторов. JavaScript просматривает любые неквалифицированные имена в наборе операторов, чтобы определить, являются ли имена свойствами объекта по умолчанию. Если неквалифицированное имя соответствует свойству, то это свойство используется в выражении; в противном случае используется локальная или глобальная переменная.
Это означает, что в примере кода сначала проверяется, является ли options
свойством sObj
. Если это так, options
относится к sObj.options
, в противном случае он проверяет другие области на наличие переменной, определенной именем options
Недостатком использования оператора with
является то, что невозможно узнать, просто взглянув на код, к которому осуществляется доступ. Есть и другие лучшие альтернативы, как показано в этой статье