Я не знаю, так ли это, но если пользователь должен каким-то образом инициализировать ваш объект, вы можете проверить в этой функции, определена ли userDefinedFunction
, и, если нет, выдать исключение.
Одна идея, которая считает более чистой реализацией, состоит в том, чтобы позволить пользователю предоставить некоторый объект конфигурации, который определяет функции, например:
yourObject.initialize({
userDefinedFunction: function() {}
});