Ever since reading Crockford's Good Parts and Johansen's TDD book, I have wanted to use more of the differential inheritance pattern in my coding at work (as in avoiding new by using Object.create()), but I find that I am having a hard time argumenting for the clearness of the code when trying to make types that can be used for object creation. Most of my co-workers are classically inclined.I guess this question somehow boils down to these pointsdowncasing/UpperCasing (i.e. car vs Car)prefixing the base instances (i.e prototypeCar). This practice is for instance seen in the code of the author of Fluent Javascript init() methods VS factory methods. // init stylecar.init = function(brand) {    this.brand = brand; }myCar = Object.create(car).init(Nissan);// versus// factory methodfunction createCar(brand) {     var o = Object.create(car);    o.brand = brand;    return o;}// alternative factory methodfunction createCar(brand) {     var o = Object.create(car, { brand : brand } )    return o;}myCar = createCar(nissan)My problem with having lower cased car types is that for someone glancing over parts of the code, they might think that car is an instance of some kind of 'class' Car, and get confused when I suddenly start creating new instances from it. In my opinion, the notion of using a prefix, such as prototype, seems to more clearly state my intentions with the instance. So do saying Car, but that implies that it should be used together with new, so one should perhaps refrain from that ... (?)
Coding convention when using differential inheritance
javascript;inheritance;prototypal class design