#javascript
#javascript
Вопрос:
Я вижу этот код, что он делает?
var obj = this;
Комментарии:
1. Какая часть этого вас смущает? это ?
2. нам нужно будет знать, в каком контексте (в рамках какой функции это было?)..
3. Я думаю, более интересным было бы: зачем вам это делать?
4. Ответ: Это оператор переменной с объявлением переменной, который инициализирует объявленную переменную obj значением this .
Ответ №1:
Это просто сохранение текущей ссылки на this
объект, которая будет использоваться в будущем. Это полезно, потому что в JS значение this
зависит от контекста.
Ответ №2:
Оно сохраняет ссылку на то, что this
было в текущем контексте, чтобы его можно было использовать позже.
Комментарии:
1. Где «позже», вероятно, означает «при закрытии».
Ответ №3:
Это установка локальной копии текущей функции первого класса, в которой она устанавливается.
Это часто используется в jquery, поскольку при использовании селекторов это приобретает другое значение.
Допустим, у меня есть
function Person() {
this.name = "gnostus";
}
и мне нужно получить доступ к name изнутри селектора jquery, где это становится html-элементом, я бы сохранил свой объект в переменной copy и использовал, obj.name
вместо this.name
когда я внутри контекста jquery.
Комментарии:
1. Я почему-то подозреваю, что jQuery является контекстом этого вопроса.
Ответ №4:
Это зависит от того, где находится этот оператор. Оно присваивает переменной «obj» ссылку на текущий объект.
например, следующий код откроет окно предупреждения и покажет [Window object]. Это потому, что мы проверяем значение «this» в области тела (не внутри какого-либо обработчика событий objects и т.д.)
<html>
<head>
</head>
<body>
<script type="text/javascript">
alert(this);
</script>
</body>
</html>
Ответ №5:
Оно создает переменную ‘obj’ и устанавливает ее в текущем контексте.
Так, например, если это на глобальном уровне this
, это будет текущее окно DOM.
Ответ №6:
var obj = this;
Указывает, присваивает obj родительскому объекту текущей области.
Впервые я прочитал этот пост пару месяцев назад, чтобы разобраться с ключевым словом ‘this’.
http://justin.harmonize.fm/index.php/2009/09/an-introduction-to-javascripts-this/
Ответ №7:
Ключевое слово this используется для обозначения владельца функции или переменной, в которой используется это ключевое слово. Для подробного понимания посетите http://www.quirksmode.org/js/this.html
Ответ №8:
Единственный контекст, который я могу придумать, где такой код имеет смысл, — это сделать текущий контекст (this) доступным внутри замыкания.
Итак, код будет выглядеть примерно так:
var obj = this;
setTimeout(function() {
obj.someMethod();
}, 1000);
Это вызвало бы метод «someMethod» для текущего контекстного объекта по прошествии 1 секунды.