我原型,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,'');
};
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参见此处 我试着用这种方式测试它:
console.log(console.log.getBody.getBody());
Run Code Online (Sandbox Code Playgroud)
但收到错误:TypeError: console.log.getBody is undefined.我发现可能发生这种情况是因为console.log在我实际制作原型之前定义了Function所以我在原型设计之前创建了一个空函数x并尝试调用
console.log(x.getBody.getBody());
Run Code Online (Sandbox Code Playgroud)
哪个没有问题.检查的类型console.log与typeof console.log在"功能"的结果.这是一个CodePen来试一试.所有这一切都不是一个惊喜,因为它是我所期望的,除了console.log.getBody未定义.
那么为什么原型设计Function不会影响console.log?我在Firebug 1.11.1中使用Firefox 18.0.1.