with в JavaScript и VBScript
Одной из бесполезных конструкций языка JavaScript называют «with». Неспроста, эта конструкция непрозрачна и потенциально может создать непростые проблемы. Небольшой код:
with (MyObject) {
width = '100px';
height = '200px';
display = 'block';
}Что будет, если свойства с таким именем не найдётся? Код заменит значения переменных width/height/display или же создаст их, если их ещё не было. Что приведёт к проблемам, если мы в связанном коде
С языком VBScript я знаком с тех пор как программировал, используя технологию ASP. В дальнейшем, я иногда использовал его, чтобы программировать
Этот язык я,
With MyObject
.width = "100px"
.height = "200px"
.display = "block"
End WithЗаметили точки впереди? Они говорят о том, что используются не просто переменные, а свойства (ну или методы) объекта, указанного в «With». Вот так просто решается куча проблем.
Комментарии 15
Так надо и указывать «delegate», а не «local»
message: Undefined variable: MyObject
это ж не пехапе всетаки какой
коряво, да.
Да это я сам напутал. Неожиданно оказалось, что надо на встречу и сырой текст пришлось запостить как есть.
В нём, в уродливом VBScript, и с «коллекциями» совсем другой коленкор. Я его позабыл уже, а порой ведь хотелось делать
Или тема вообще о непригодности with ни для чего?
Ну глупый вопрос, да. Вероятно, мне хотелось услышать несколько слов «о вредности with» безотносительно бейсика.
Комментарий дляboltai-shaltai:
Пардон, не хотел обидеть.
Я как раз написал о недостатках with и пути их решения.