Antes que nada, lo siento si esta es una pregunta estúpida. He escrito dos fragmentos de código a continuación. El primer fragmento de código encontrado desde here escrito por John Resig
e indudablemente es uno de los mejores y el segundo fragmento de código es modificado por mí desde el código original solo para entender la diferencia, pero no estoy seguro cuál es la diferencia entre ambos y qué Puedo y no puedo hacer con ambos comparativamente. Por favor, alguien me ayude a entender la diferencia. Gracias.Opp Javascript e instanciación de clase simple
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);
versión modificada
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);
Por qué debería usar prototipo del objeto para agregar un método (después de hacer un ejemplo) en lugar de escribirlo dentro del constructor?