He estado leyendo sobre la cuña de Crockford para evitar la sobreescritura de prototipos, y entiendo que, a veces, no es la solución final. También entiendo que ES5 Shim puede ser una alternativa viable a esto. También leo this post which provides a more robust, secure alternative.Comprensión del objeto de Crockford.create shim
Aún así, me gustaría saber qué es 0imshim está "diciendo" y luego "haciendo". ¿Puede alguien decirme si los comentarios de mi explicación son correctos?
if (typeof Object.create === 'undefined') {
//If the browser doesn't support Object.create
Object.create = function (o) {
//Object.create equals an anonymous function that accepts one parameter, 'o'.
function F() {};
//Create a new function called 'F' which is just an empty object.
F.prototype = o;
//the prototype of the 'F' function should point to the
//parameter of the anonymous function.
return new F();
//create a new constructor function based off of the 'F' function.
};
}
//Then, based off of the 'Lost' example in the Crockford book...
var another_stooge = Object.create(stooge);
//'another_stooge' prototypes off of 'stooge' using new school Object.create.
//But if the browser doesn't support Object.create,
//'another_stooge' prototypes off of 'stooge' using the old school method.
De esta manera, el prototipo del objeto 'títere' no se pueden sobrescribir cuando aumentamos cosas para 'another_stooge'. No es necesario reiniciar el prototipo de 'títere' con 'constructor'.
Gracias de antemano,
-k
A-ha! Creo que lo tengo. Gracias Sheikh ... ¡tu ayuda es muy apreciada! – kaidez
Eres el más bienvenido :-) –