Вы можете использовать общие домены Apache:
Для подстроки после последнего вхождения используйте этот метод .
И для подстроки после первого эквивалентного метода вхождения является здесь .
Вы правы, думая, что это невозможно с тем, как модуль в настоящее время структурирован.
Когда код выполняется, ссылка baz
внутри function bar
разрешена относительно локального реализация. Вы не можете изменить это, поскольку вне кода модуля нет доступа к внутренним элементам.
У вас do есть доступ к экспортированным свойствам, но вы не можете их мутировать и так вы не можете повлиять на модуль.
Один из способов изменить этот код:
let obj = {};
obj.bar = function () {
this.baz();
}
obj.baz = function() {
...
}
export default obj;
Теперь, если вы переопределили baz
в импортированном объекте, вы будет влиять на внутренности bar
.
Сказав это, это выглядит довольно неуклюжим. Существуют и другие методы управления поведением, такие как инъекция зависимостей.
Кроме того, вы должны подумать, действительно ли вы заботитесь о том, вызван ли baz
. В стандартном «черном ящике» вам все равно , как что-то сделано, вам все равно, какие побочные эффекты он генерирует. Для этого проверьте, были ли побочные эффекты, которые вы ожидали, и что ничего больше не было сделано.