Zunächst tut mir leid, wenn das eine dumme Frage ist. Ich habe zwei Code-Schnipsel geschrieben. Das erste Code-Snippet von here von John Resig
geschrieben und zweifellos ist er einer der Besten und der zweite Codeausschnitt wird von mir aus dem ursprünglichen Code nur um den Unterschied zu verstehen, aber ich bin mir nicht sicher, was ist der Unterschied zwischen beiden und was Das kann und kann ich nicht mit beiden vergleichen. Bitte helfen Sie mir, den Unterschied zu verstehen. Vielen Dank.OOP Javascript und Simple Class Instanziierung
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);
Version Modified
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);
Warum sollte ich den Prototyp des Objekts verwenden, um eine Methode hinzuzufügen (nach einer Instanz zu machen), anstatt sie in den Konstruktor zu schreiben?