¿Por qué la función de creación de prototipos no afecta a console.log?
Yo prototipéFunction
para que tenga una función getBody:
Function.prototype.getBody = function() {
// Get content between first { and last }
var m = this.toString().match(/\{([\s\S]*)\}/m)[1];
// Strip comments
return m.replace(/^\s*\/\/.*$/mg,'');
};
Veraquí para más información. Intenté probarlo de esta manera:
console.log(console.log.getBody.getBody());
pero recibió un error:TypeError: console.log.getBody is undefined
. Me di cuenta de que tal vez esto sucede porqueconsole.log
Fue definido antes de que yo prototipo en realidadFunction
así que creé una función vacíax
Justo antes de la creación de prototipos y trató de llamar
console.log(x.getBody.getBody());
Lo que funcionó sin problema. Comprobando el tipo deconsole.log
contypeof console.log
resultados en "función". Aquí está unCodePen para probarlo. Todo esto no fue realmente una sorpresa, ya que es lo que esperaba excepto porconsole.log.getBody
estar indefinido
Entonces, ¿por qué hace prototiposFunction
no afectaconsole.log
? Estoy usando Firefox 18.0.1 con Firebug 1.11.1.