это в функции конструктора JavaScript - PullRequest
0 голосов
/ 12 октября 2011
function Foo() {  
    alert(this === a);//return false!   **why this is not equal a?**  
}  
var a = new Foo();//create a new object

foo является конструктором, почему это в 'Foo' не равно 'a'.

Ответы [ 2 ]

6 голосов
/ 12 октября 2011

Назначение переменной a еще не произошло, когда вы находитесь внутри конструктора.Последовательность событий:

  1. Создание нового объекта
  2. Запуск конструктора
  3. Назначение нового объекта переменной a.
0 голосов
/ 12 октября 2011

я думаю, что «это» относится к объекту, но «this.a» верно, поскольку это объект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...