Richard, returning alien object from the constructor could actually be quite confusing:
var Person = Class.create({ initialize: function(name) { this.name = name; return { foo: 'bar' }; }, speak: function(msg) { return [this.name, msg].join(': '); } }) var john = new Person('John'); // broken prototype chain john instanceof Person; // false john.constructor == Person; // false // missing instance properties/methods john.name; // undefined john.speak; // undefined // returned object has nothing to do with the Person class john.foo; // 'bar' As far as factory pattern, I don't think it's a good idea for a class X to return class Y. Wouldn't it make more sense to have an instance of class "Factory" that could return either X or Y? On Apr 28, 5:15 am, "Richard Quadling" <[EMAIL PROTECTED]> wrote: > 2008/4/28 Rails Trac <[EMAIL PROTECTED]>: > > > > > #11481: [PATCH] [TEST] Constructor wrapper should return value > > > > ---------------------------------------------------+------------------------ > > Reporter: cch1 | Owner: sam > > Type: defect | Status: closed > > > Priority: normal | Milestone: 2.x > > Component: Prototype | Version: edge > > Severity: normal | Resolution: wontfix > > > Keywords: TRIVIAL constructor initialize return | > > > > ---------------------------------------------------+------------------------ > > Changes (by jdalton): > > > * status: new => closed > > * resolution: => wontfix > > > Comment: > > > After some discussions I don't believe this will ever make it into the > > core. > > > -- > > Ticket URL: <http://dev.rubyonrails.org/ticket/11481#comment:9> > > In general, having class X being able to return class Y can be very > useful (implementing a factory for example). > > I'm not saying that this SHOULD go in, but what are the primary > reasons for NOT putting it in? > > Thanks. > > Richard Quadling. > > -- > ----- > Richard Quadling > Zend Certified Engineer :http://zend.com/zce.php?c=ZEND002498&r=213474731 > "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---