We are not under a unified VM (syntax not usable) and I cannot spot a single
benefit using two calls rather than one plus implicit init method.

// right now
function Man(name){
    // here Man prototype has been already inherited
    // and it is usable from "this"
    // a constructor is an implicit init method
    // let's define the name
    this.name = name;
};

var me = new Man("Andrea");


// boring future coolness
function Man(name){
    // no instance here, this is the global object
    // so we have to call another method from global Object
    // requiring scope resolution (Object) property access (create)
    // and finally function call plus property access (Man.prototype)
    // one up to tow objects creation plus a return
    return Object.create(Man.prototype, {
        name:{
            value:name
        }
    });
};

So, size wise speaking, we are simply incrementing without a valid reason
our scripts.
Performance speaking, we are simply incrementing execution time for each
instance creation.

WOW, this ES5 will bring a lot of features, isn't it?

wanna obtain the same behavior? EASY

function Man(name){
    if(!(this instanceof Man))
        return new Man(name);
    this.name = name;
};

var me = Man("Andrea");

Still less code, function duality used if necessary, and total cross browser
compatibility.

Regards

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to