2015-03-04 2 views
1

Если я просто поставил «это» в начале JavaScript, то это не в каких-либо функциях. Имеет ли значение «это» то же значение с «документом»? или это окно?Что это значит в javascript?

Пример:

$(this).ajaxComplete(handler); 

В этом случае я атташе обработчик к окну или документу или что-то другое?

+5

«окно», возможно, но я не могу сказать без дальнейшего контекста. –

+2

'console.log (this); ' – zerkms

+0

В основном это означает, что вы назначаете текущий объект переменной, кроме того, что это всегда глобальный объект - окно. – pj013

ответ

0

Так что это действительно зависит от того, где этот код. Это в $ (document) .ready() или $ (window) .load()? Если вы находитесь внутри:

$(function(){ }); 

Тогда это всего лишь короткая рука для $ (document) .ready(). Таким образом, вы будете ссылаться на документ. Проверьте это: http://learn.jquery.com/using-jquery-core/document-ready/

Также $ (this) означает, что вы имеете в виду текущий объект.

+0

$ (это) нигде, это ни в одном из выражений, которые вы указали. Это только что было написано в самом начале файла JavaScript. Как было сказано выше, я думаю, что это относится к окну. – CodTango

4

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

this в глобальном контексте просто ссылается на глобальных window самом вместо того, чтобы документ. Выше ссылка имеет отличный пример:

console.log(this.document === document); // true

// In web browsers, the window object is also the global object: console.log(this === window); // true

this.a = 37; console.log(window.a); // 37

Я не проверял это во всех браузерах, но это, кажется, верно как в Firefox и Chrome.

0

Если это единственная строка в вашем скрипте, тогда код оценивается в контексте глобального выполнения. Давайте посмотрим, что спецификация говорит об этом:

10.4.1.1 Initial Global Execution Context

Следующие шаги выполняются для инициализации глобального контекста исполнения для ECMAScript кода C:

  1. Установите VariableEnvironment в the Global Environment.
  2. Установите LexicalEnvironment на номер the Global Environment.
  3. Задайте ThisBinding глобальному объекту.

ThisBinding это значение, которое this решает. Таким образом, в глобальном контексте относится к глобальному объекту, который находится в браузерах window.

Для получения дополнительной информации (менее формальной) о this, посмотрите на MDN documentation.

Смежные вопросы