Нет способа получить доступ к внутреннему контексту импортированного модуля, если он явно не экспортирует нужные биты (или не предоставляет функции, которые их представляют).Javascript this
не ведет себя как Java this
, а модули не являются классами.
Есть и другие случаи, но в основном, если текущая функция называется someFunc
и вызывается с синтаксисом a.someFunc()
, тогда this
будет таким же, как a
.Вот работающий пример:
const someObject = {
someFunc() {
//Here, "this" will be the same as someObject, because of the way we called it
someOtherFunction();
}
};
someObject.someFunc();
function someOtherFunc() {
//"this" is still someObject because it's inherited from the calling function which was not called using a method syntax
x.y(); //inside the y() function, "this" will now be x
}
По сути, ИМХО, this
- это разбитый беспорядок в Javascript и одна из ключевых причин, по которой я избегал использовать его везде, где это возможно.Это означает, что я не использую классы, и я получаю все, что мне нужно, от замыканий.