У меня есть сервис angular, назовем его ActionService, который использует "использовать строго". Поэтому всякий раз, когда я использую это для вызова собственного метода, он не определяется. Есть ли способ обойти строгое использование?
if (angular.isFunction(this[action.name])) {
this[action.name](parameters);
} else {
doSpecialAction(action, parameters);
}
it is undefinded не зря, без use strict; он был бы окном, и здесь это было бы бесполезно ..



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваша проблема не имеет отношения к use strict;.
Javascript не передает контекст this, IOW: this не привязан к вызову функции, если только вы не обращаетесь к функции, используя точечную нотацию, вызов функции по умолчанию будет иметь this как неопределенный или окно, если не use strict, в обоих случаях очень полезно.
Из-за этого в Javascript есть такие вещи, как bind / apply / call и т. д.
В вашем случае call, скорее всего, то, что вам нужно.
так.
this[action.name].call(this, parameters);
Вы можете использовать
var self = this;, а затем вызвать вself[...]?