Acabo de recibir Javascript: The Good Parts por Douglas Crockford y estoy teniendo algunas dificultades para entender uno de sus ejemplos con respecto a los prototipos. El código en el libro se lee de la siguiente manera:confusión sobre el ejercicio de Javascript
if (typeof Object.create !== "function") {
Object.create = function(o) {
var F = function() {}
F.prototype = o;
return new F;
};
}
Estoy asumiendo que este código se utiliza para apuntar el prototipo de una función. Pero, ¿por qué usar un enfoque tan complejo? ¿Por qué no usar variable
.prototype? Crockford es el experto líder en Javascript, así que estoy seguro de que hay una buena razón para usar este modelo. ¿Alguien puede ayudarme a entenderlo mejor? Cualquier ayuda sería apreciada.
@ CMS, pero en este caso, 'Object.create' está configurado como una función vacía. Entonces no hay herencia aquí ... ¿verdad? Además, dado que 'Object.create' es un método del constructor' Object', establecerlo igual a una función vacía sería 'null' correcto? – dopatraman
@codeninja, no entiendo por qué dices 'Object.create' está * set * en una función * empty *, tal vez debido a la última línea (' return new F; ') ??? La última línea simplemente devuelve un nuevo objeto que invoca el constructor 'F' (un objeto que hereda de' F.prototype'), podría parecer poco familiar ya que los paréntesis faltan al final, pero son opcionales cuando se usa el 'nuevo 'operator (' new F(); 'es equivalente a' new F; ') ... – CMS
@ CMS - El código dice' Object.create = var F' que está configurado '=' to 'function() { } ' ¿no significa esto que en cierto sentido está configurado para una función vacía? – dopatraman