Javascript.RU

this

Описание, примеры

Оператор this возвращает ссылку на объект, являющийся текущим контекстом вызова. Это позволяет обращаться к свойствам "текущего" объекта: this.property.

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

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

Тип Способ this
неявно, через вызов метода object.method(...) object
явно, через call function.call(object,...) object
явно, через apply function.apply(object,...) object
неявно, через вызов new new constructor(...) новый, создаваемый объект

Если ни один из этих способов не задействован, то 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 будет указывать на текущий объект

См. также


Автор: Гость (не зарегистрирован), дата: 29 марта, 2011 - 21:20
#permalink

Здравствуйте, А как быть с многоуровневыми объектами?
Точнее: как получить доступ к старшему объекту?

Допустим:

var o=
{
     subO:
     {
          f: function ()
          {
               this // Вернёт subO
               // А как получить, например o?
          }
     }
}


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2011 - 14:53
#permalink

Если ничего не путаю, необходимо будет обращаться напрямую. чтобы получить subO в f, необходимо обращаться как o.subO, и так далее.


Автор: Гость (не зарегистрирован), дата: 22 июня, 2011 - 15:08
#permalink
[js][html][css][css][html]<strong><em><ol>
 <li<ul>
 <li<a><img src="" alt="" /></a>></li>
</ul>></li>
</ol></em></strong>
[/html]
[/css]
[/css]
[/html]
[/js]

Автор: Гость (не зарегистрирован), дата: 22 июня, 2011 - 15:09
#permalink

ti durak???? schtole????///<?php
echo "debil";
?>


Автор: opel323, дата: 12 марта, 2012 - 05:28
#permalink

козломордые сучаторы


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
6 + 12 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама

Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum
Последние комментарии