Почему функция создания прототипа не влияет на console.log?
Я прототипировалFunction
так что у него есть функция 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,'');
};
УвидетьВот для получения дополнительной информации. Я попытался проверить это так:
console.log(console.log.getBody.getBody());
но получил ошибку:TypeError: console.log.getBody is undefined
, Я понял, что, возможно, это происходит потому, чтоconsole.log
был определен до того, как я на самом деле прототипFunction
поэтому я создал пустую функциюx
прямо перед прототипом и попытался позвонить
console.log(x.getBody.getBody());
который работал без проблем. Проверка типаconsole.log
сtypeof console.log
результаты в "функция», Вот'сCodePen попробовать это. Все это развеэто действительно сюрприз, так какЧто я ожидал, кромеconsole.log.getBody
быть неопределенным.
Так почему же прототипированиеFunction
не влияетconsole.log
? Я'используя Firefox 18.0.1 с Firebug 1.11.1.