Это ключевое слово в JavaScript

В JavaScript, это относится к объекту.
Какой именно объект, зависит от того, как этот вызывается (используется или вызывается).
На сайте этот относится к разным объектам в зависимости от того, как оно используется:

  1. В методе объекта this относится к объекту.
  2. В одиночном режиме это относится к глобальному объекту.
  3. В функции this относится к глобальному объекту.
  4. В функции в строгом режиме это неопределено.
  5. В событии this ссылается на элемент, получивший событие.
  6. Такие методы, как call(), apply() и bind(), могут ссылаться на любой объект.

this в методе

  • Когда this используется в методе объекта, оно ссылается на объект.
  • В приведенном ниже примере this относится к объекту person.
  • Потому что метод fullName является методом объекта person.

 const person = {
    firstName: "John",
    lastName: "Doe",
    id: 5566,
    fullName : function() {
      return this.firstName + " " + this.lastName;
    }
};
console.log(person.fullName())//John Doe

Вход в полноэкранный режим Выйти из полноэкранного режима

this Alone

  • При использовании в одиночку, this ссылается на глобальный объект.
  • Поскольку этот выполняется в глобальной области видимости.
  • В окне браузера глобальным объектом является [объект Window]:
  • В строгий режимесли используется отдельно, это также относится к глобальному объекту:
 let x=this;
console.log(x)//window
console.log(this)//window
console.log(window==this)//true
Войти в полноэкранный режим Выход из полноэкранного режима

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

  • В функции глобальный объект является привязкой по умолчанию для this.

  • В окне браузера глобальным объектом является [объект Window]:

  • В обычной функции и функции со стрелками это относится к объекту окна.

function a(){
    return this;
  }
  console.log(a())//window

  let b=()=>{
    return this;
  }
  console.log(b())//window
Вход в полноэкранный режим Выйти из полноэкранного режима

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

Строгий режим JavaScript не допускает привязки по умолчанию.
Поэтому при использовании в функции в строгом режиме this не определено.

'use strict'
  function a(){
    return this;
  }
  console.log(a())//undefined
Войти в полноэкранный режим Выход из полноэкранного режима

Явное связывание функций

Методы call() и apply() являются предопределенными методами JavaScript.

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

Приведенный ниже пример вызывает person1.fullName с person2 в качестве аргумента, это относится к person2, даже если fullName является методом person1:


 const person1 = {
    firstName:"Manish",
    lastName:"Kumar",
    fullName: function() {
      return this.firstName + " " + this.lastName;
    }
  }

  const person2 = {
    firstName:"John",
    lastName: "Doe",
  }

console.log(person1.fullName.call(person3))//John Doe
Войти в полноэкранный режим Выйти из полноэкранного режима

Заимствование функций

С помощью метода bind() объект может заимствовать метод у другого объекта.

В данном примере создаются 2 объекта (person и member).

Объект member заимствует метод fullname у объекта person:

 const person11 = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
      return this.firstName + " " + this.lastName;
    }
  }

  const member = {
    firstName:"Hege",
    lastName: "Nilsen",
  }

  let fullName = person11.fullName.bind(member);
  console.log(fullName())//Hege Nilsen
Вход в полноэкранный режим Выход из полноэкранного режима

Если вам понравилось, пожалуйста, поделитесь этим…..

Оцените статью
devanswers.ru
Добавить комментарий