САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
×

JS Учебник

JS Главная JS Введение JS Что? Где? Куда? JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметика JS Присваивания JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Числа JS Методы чисел JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Объекты дат JS Формат дат JS Метод получения дат JS Метод набора дат JS Математические... JS Случайные числа JS Булевы JS Сравнение... JS Заявления if...else JS Заявление switch JS Цикл for JS Цикл while JS Заявление break... JS Преобразование... JS Битовые... JS Регулярные выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Ключевое слово let JS Константы JS Функция стрелки JS Классы JS Отладчик JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS Версия 2016 JS Версия 2017 JS JSON

JS Формы

JS Формы JS Формы API

JS Объекты

Определение объекта Свойства объекта Методы объекта Отображение объекта Доступ к объекту Конструкторы объекта Прототипы объекта ES5 Методы объекта

JS Функции

Определение функции Параметры функции Вызов функции Вызвать функцию Применение функции Закрытие функции

JS Прочее

Классы введение Наследование класса Статические методы... JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный синтаксис

JS HTML DOM

DOM Введение DOM Методы DOM Документы DOM Элементы DOM HTML DOM CSS DOM Анимация DOM События DOM Прослушиватель событий DOM Навигация DOM Узлы DOM Коллекция DOM Список узлов

JS Браузера BOM

JS Window JS Экран JS Расположение JS История JS Навигатор JS Предупреждение JS Синхронизация JS Cookies

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос на сервер AJAX Ответ с сервера AJAX XML Файл AJAX PHP Файл AJAX ASP Файл AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON или XML JSON Типы данных JSON Парсинг JSON Строки JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS Веб API

API - Введение API - История API - Хранилище API - Работник API - Извлечь файл API - Геолокации

JS или jQuery

jQuery HTML Селекторы jQuery HTML Элементы jQuery CSS Стили jQuery HTML DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Ввода JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочник

JavaScript Объекты HTML DOM Объекты


Обновляется!!! Справочник JavaScript

JavaScript Ключевое слово "this"



Пример

var person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};
Попробуйте сами »

Что за this?

Ключевое слово this JavaScript относится к объекту, которому оно принадлежит.

Он имеет разные значения в зависимости от того, где он используется:

  • В методе this относится к объекту-владельцу.
  • Один this относится к глобальному объекту.
  • В функции this относится к глобальному объекту.
  • В функции в строгом режиме this есть undefined.
  • В событии this относится к элементу, получившему событие.
  • Такие методы, как call() и apply(), могут относиться this к любому объекту.

В методе this

В методе объекта this относится к "владельцу" метода.

В примере в верхней части этой страницы this относится к объекту person.

Объект person является владельцем от fullName метода.

fullName : function() {
  return this.firstName + " " + this.lastName;
}
Попробуйте сами »

Один this

При использовании отдельно владельцем является глобальный объект, поэтому он this относится к глобальному объекту.

В окне браузера глобальный объект [object Window]:

Пример

var x = this;
Попробуйте сами »

В строгом режиме, когда используется отдельно this, также относится к глобальному объекту [object Window]:

Пример

"use strict";
var x = this;
Попробуйте сами »

В функции (по умолчанию) this

В функции JavaScript владельцем функции является привязка по умолчанию для this.

Итак, в функции this ссылается на глобальный объект [object Window].

Пример

function myFunction() {
  return this;
}
Попробуйте сами »

В функции (строги режим) this

JavaScript строги режим не допускает привязку по умолчанию.

Таким образом, при использовании в функции, в строгом режиме, this есть undefined.

Пример

"use strict";
function myFunction() {
  return this;
}
Попробуйте сами »

В обработчиках событий this

В обработчиках событий HTML this относится к элементу HTML, получившему событие:

Пример

<button onclick="this.style.display='none'">
  Click to Remove Me!
</button>

Попробуйте сами »


Привязка метода объекта

В этих примерах this это объект person (объект person является "владельцем" функции):

Пример

var person = {
  firstName  : "John",
  lastName   : "Doe",
  id         : 5566,
  myFunction : function() {
    return this;
  }
};
Попробуйте сами »

Пример

var person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};
Попробуйте сами »

Другими словами: this.firstName означает свойство firstName этого (person) объекта.


Явная привязка функций

В call() и apply() методы JavaScript предопределены.

Оба они могут использоваться для вызова метода объекта с другим объектом в качестве аргумента.

Вы можете узнать больше call() и apply() позже в этом руководстве.

В приведенном ниже примере при вызове person1.fullName с аргументом person2 this будет ссылаться на person2, даже если это метод person1:

Пример

var person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
var person2 = {
  firstName:"John",
  lastName: "Doe",
}
person1.fullName.call(person2);  // Вернет "John Doe"

Попробуйте сами »