Прикладной код

Оператор «This»

Оператор «This»

Возвращает ссылку на объект, являющийся текущим контекстом вызова.

Описание

Текущий объект не является жестко фиксированным и зависит от контекста вызова функции. Является скрытым параметром.

Есть четыре различных варианта его передачи:

Тип

Способ

this

неявно, через вызов метода

object.method(...)

object

явно, через call

function.call(object,...)

object

явно, через apply

function.apply(object,...)

object

неявно, через вызов new

new constructor(...)

новый, создаваемый объект

Если ни один из этих способов не задействован, то this указывает на глобальный объект. Это происходит при вызове функции без объекта: myFunc(params).

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

Так как у оператора this нет жесткой привязки к объекту, то можно привязывать один и тот же метод к любым классам.

walk = function() {
 this.isWalking = true
}

function Bird() {}

function Rabbit() {}
Bird.prototype.walk = Rabbit.prototype.walk = walk new Bird().walk() new Rabbit().walk()