Оператор this возвращает ссылку на объект, являющийся текущим контекстом вызова. Это позволяет обращаться к свойствам "текущего" объекта: this.property.
Текущий объект не является жесткой фиксированным и зависит от контекста вызова функции. Он является, своего рода, скрытым параметром.
Если ни один из этих способов не задействован, то this указывает на глобальный объект: в браузере это window.
Это происходит при вызове функции без объекта: myFunc(params).
При манипуляциях с DOM при помощи javascript, this обычно используется для работы с событиями. При этом значение this указывает на текущий DOM-элемент, в контексте которого вызван обработчик.
Привязка методов
Так как this не привязано жестко к объекту, то можно привязывать один и тот же метод к любым классам.
Пример:
Выделить все
walk = function(){this.isWalking = true}function Bird(){/*...*/}function Rabbit(){/*...*/}
Bird.prototype.walk = Rabbit.prototype.walk = walk
new Bird().walk()// в обоих случаяхnew Rabbit().walk()// this будет указывать на текущий объект
Это интересно
Выбор для домена именно букв «рф», а не, например, «ру» объясняется условием, чтобы в кириллических доменах использовалась хотя бы одна буква, отличная от латинского алфавита (в данном случае «ф»), чтобы не было путаницы с латинскими доменами («.py» (Paraguay) — национальный домен Парагвая). Это условие будет соблюдаться и в будущем при создании кириллических доменов.