Глобальный контекст (смена контекста)
В этом коде, результат будет 81, это я понимаю
var x = 9; var module = { x: 81, getX: function() { return this.x; } }; module.getX(); Но почему, если метод getX указать ссылкой для переменной var getX = module.getX И потом вызывать эту переменную getX() То x берётся из глобального объекта window, а не из объекта module? Почему так? По идеи var getX = module.getX это ссылка var getX = module.getX() а это присвоение и сразу вызов Почему меняется контекст? |
|
Там совсем другой пример
|
https://learn.javascript.ru/object-methods - тут подробно и внятно
|
Я разобрался.
Я просто не понимал, то, что то переменной var getX = module.getX; присваивается только метод getX, а остальное содержимое самого объекта module игнорируется |
DivMan,
Вам же объясняют, что this меняется. Если без this var x = 9; var module = { x: 81, getX: function() { return module.x; } }; alert(module.getX()); var getX = module.getX; alert(getX()); |
Часовой пояс GMT +3, время: 04:56. |