Как ловить вызов несуществующих методов?
Либо реализуйте пустые функции{
  foo: function() { console.log("такого метода нет") },
  bar: function() { console.log("такого метода нет") },
  baz: function() { console.log("такого метода нет") }
}
либо сделайте вызовы через функцию обертку var obj = {
  callMethod: function(name) {
    if (typeof obj[name] === "function") {
      obj[name].apply(null, [].slice.call(arguments, 1))
    } else {
      console.log("такого метода нет")
    }
  }
}
Проверять его typeof