ответ
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with
«JavaScript ищет неизвестное имя путем поиска цепочки области, связанную с контекстом выполнения сценария или функции, содержащим что неквалифицированным имя.„С“заявление добавляет заданный объект руководителю этой цепочки областей видимости при оценке своего тела оператора. Если неквалифицированное имя, используемое в теле, соответствует свойству в цепочке областей видимости, то имя привязано к свойству и объекту, содержащему это свойство. В противном случае a Вызывается ReferenceError. "
obj = {'when': 'now'}
with (obj) {
console.log(when)
}
Я попытался включить «дайте мне Google, что для вас», и это дало мне ошибку. ; _; – DataHerder
Позволяет свойства объекта обрабатывать как локальные переменные в инструкции.
var obj = { text: "testing" };
with (obj) {
console.log(text);
}
вместо
var obj = { text: "testing" };
console.log(obj.text);
Это является устаревшим и запрещен в строгом режиме.
с тем, чтобы создать блок, ограниченный областью действия объекта. Что-то вроде:
var obj = {a: 1,b: 2, c: 3};
// more "tedious" to repeat "obj"
obj.a = 2;
obj.b = 3;
obj.c = 4;
// "easier" short-hand
with (obj) {
a = 3;
b = 4;
c = 5;
}
Но это создавало массу проблем. Это проблемы хорошо объяснены в главе 2 книги Кайла Симпсона «Сфера & Закрытие» в «Вы не знаете JS». Я рекомендую вам прочитать его. Специально не используйте его, если вы не очень хорошо знаете, что делаете, или это может стоить вам тяжело отслеживать ошибки.
расширяет сферу цепочки для заявления
Расширенные цепи, вероятно, что мы любим больше о библиотеках JavaScript ...
$("stuff")
.more()
.again()
.somethingElse()
;
, но по какой-то садистской причине мы решили, что нам не нравится родной протяженные цепи в нашем коде ...
with(stuff){
more()
again()
somethingElse()
};
Плохие Примеры А Плохое использование
Каждый раз, когда я говорю, что с утверждением ничего плохого, кто-то постоянно указывает на эту кровавую почту ... ОК, из Yahoo! ... И что? Честно говоря, я могу опубликовать тысячи плохих примеров и указать пальцем на ту или иную библиотеку, функцию, метод, оценку и т. Д. И т. Д. ... это похоже на миф eval - это зло ... так как получилось, что один из первых говорить о зле использует eval для ускорения интерпретации кода? Легко: есть случаи и случаи!
Сила с() {}
я дам вам самый простой пример когда-либо, что-то случилось в твиттере несколько минут назад, хорошо? Я хочу использовать наименьшее количество символов, чтобы получить инъекцию скрипта ... правильно?
with(document.documentElement)
insertBefore(
document.createElement("script"),
firstChild
)
.text = "alert(1)"
;
Изящные, память осведомленные (без переменных деклараций, нет необходимости создавать замыкание), компактный, эффективный, кросс-браузер ... где «JavaScripters», которые используются с для назначения переменных здесь?
В любом случае, мне бы хотелось увидеть, кто может создать код, меньший, чем пример прецедента, который заботится об удалении любой трассы этой операции в текущей области.
- 1. Что означает ключевое слово KEY?
- 2. Что означает ключевое слово «значение»?
- 3. Что означает ключевое слово extern?
- 4. Что означает ключевое слово «far»?
- 5. Что означает ключевое слово strictfp?
- 6. Что означает ключевое слово «Действие»?
- 7. Что означает ключевое слово jsr?
- 8. Что означает ключевое слово «где»?
- 9. Что означает определенное ключевое слово
- 10. Что означает ключевое слово 'where' в C?
- 11. Что означает ключевое слово _Default в C#
- 12. Что означает «ключевое слово» в этом запросе?
- 13. Что означает ключевое слово ограничения в C++?
- 14. Что означает «требуемое» ключевое слово в Свифт?
- 15. Что означает ключевое слово Base в Юлии?
- 16. Что означает «новое» ключевое слово в C#?
- 17. Что означает ключевое слово ALSO в MLISP?
- 18. Что означает ключевое слово new в JavaScript?
- 19. Что означает ключевое слово fileprivate в Swift?
- 20. Что означает ключевое слово «Shared» в VB.NET?
- 21. Что означает ключевое слово 'in' в javascript?
- 22. Что означает ключевое слово «set» в рубине?
- 23. Q_DECL_EXPORT ключевое слово означает
- 24. Что означает ключевое слово типа «Скала»?
- 25. это ключевое слово в Js
- 26. Swift `in` ключевое слово означает?
- 27. ES6 js «с» ключевое слово
- 28. Что означает ключевое слово this this в параметре метода?
- 29. Что означает «как» ключевое слово в маршрутизации Laravel?
- 30. Что означает это ключевое слово в объявлении метода?
Когда и где я могу использовать это ключевое слово WITH? –
Что-то, что вы не должны использовать. Вы даже использовали Google? – ergonaut
Вы можете найти ответ здесь http://stackoverflow.com/questions/1931186/with-keyword-in-javascript – prdtuty