OOP Javascript und Simple Class Instantiation

Zuallererst tut es mir leid, wenn dies eine dumme Frage ist. Ich habe unten zwei Code-Schnipsel geschrieben. Das erste Code-Snippet, das von gefunden wurdeHier geschrieben vonJohn Resig und zweifellos ist er einer der Besten und das zweite Code-Snippet wurde von mir vom Originalcode modifiziert, nur um den Unterschied zu verstehen, aber ich bin mir nicht sicher, was der Unterschied zwischen beiden ist und was ich mit beiden vergleichsweise machen kann und was nicht . Bitte hilft mir jemand, den Unterschied zu verstehen. Vielen Dank.

<code>    function makeClass(){
        return function(args){
            if ( this instanceof arguments.callee ) {
                if ( typeof this.init == "function" )
                    this.init.apply( this, args.callee ? args : arguments );
                }
                else  return new arguments.callee( arguments );
        };
    }
    var User = makeClass();
    User.prototype.init = function(first, last){
      this.name = first + " " + last;
    };
    var user = User("John", "Resig");
    console.log(user);
</code>

Geänderte Version

<code>    function myClass(args)
    {
        if (this instanceof arguments.callee) 
        {
            this.init = function(first, last){
                this.name = first + " " + last;
            };
            this.init.apply( this, args.callee ? args : arguments );
        }
        else    return new arguments.callee( arguments );
    }
    var obj = new myClass('Sheikh', 'Heera');
            console.log(obj);
</code>

Warum sollte ich den Prototyp des Objekts verwenden, um eine Methode hinzuzufügen (nachdem ich eine Instanz erstellt habe), anstatt sie in den Konstruktor zu schreiben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage