Проблема в том, что в методе используется ключевое слово this
, и мы вызываем этот метод из объекта-получателя, и this
не привязан к объекту, который, как мы ожидаем, будет привязан, то есть к Джерри в этом случае.
Обратите внимание, что значение this
в методах и функциях должно быть задано явно, когда нам нужен конкретный объект, связанный со значением this
функции.
Решение
Решение простое в использовании правильного контекста
т.е. мы хотим, чтобы this
ссылался на jerry, поэтому при вызове метода doAction с методом sayMoo объекта jerry используйте вызов функции bind и передайте jerry в качестве этого аргумента
doAction(jerry.sayMoo.bind(jerry));