My question is on the following expression:
var prototype = Object.create(extend && extend.prototype);
I think it's creating the prototype object inheriting the extend object.  And extend && extend.prototype is checking to see if extend exists and extend.prototype exists.  If either one doesn't exist, prototype will be a object without superclass.  And if both exist, prototype will inherit extend?  How does it know to use extend.prototype with extend && extend.prototype syntax?
So var prototype = Object.create(extend && extend.prototype) and var prototype = Object.create(extend.prototype) are the same if both extend and extend.prototype are there?
Thanks.
 
     
    