Если вы не сбросите указатель на конструктор, все дочерние элементы сообщат, что родительский объект является их конструктором.
LessonProvider.prototype.constructor = LessonProvider;
Вы можете попробовать использовать для наследования функцию, подобную приведенной ниже:
function inherit(C, P) {
//empty function used as a proxy
var F = function() {};
//set F's prototype equal to P's prototype
F.prototype = P.prototype;
//C will only inherit properties from the F's prototype
C.prototype = new F();
//set access to the parents (P's) prototype if needed
C.uber = P.prototype;
//Set the constructor back to C
C.prototype.constructor = C;
}
inherit(LessonProvider, ContentProvider);