test
всегда связан в закрытии функции two
с переменной test
, тогда как this
зависит от того, как вызывается функция.Если функция вызывается с использованием обычного синтаксиса доступа к элементу объекта, this
становится объектом, владеющим функцией:
test.two(); // inside, "this" refers to the object "test"
Вы можете изменить значение this
, используя Function.prototype.call
:
test.two.call(bar); // inside, "this" refers to the object "bar"
Но значение test
остается неизменным внутри функции two
, независимо от того, как вызывается функция.