【发布时间】:2013-02-05 19:15:53
【问题描述】:
我对@987654323@ 进行了原型设计,使其具有 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,'');
};
请参阅here 了解更多信息。 我试着用这种方式测试它:
console.log(console.log.getBody.getBody());
但收到错误:TypeError: console.log.getBody is undefined。
我发现可能会发生这种情况,因为console.log 是在我实际原型化Function 之前定义的,所以我在原型设计之前创建了一个空函数x 并尝试调用
console.log(x.getBody.getBody());
没有问题。用typeof console.log 检查console.log 的类型会得到“函数”。这是一个CodePen 来尝试一下。所有这一切都不足为奇,因为除了 console.log.getBody 未定义之外,这是我所期望的。
那么为什么原型设计Function 不会影响console.log?我正在使用 Firefox 18.0.1 和 Firebug 1.11.1。
【问题讨论】:
-
对我来说很好(IE10)
-
这在 Chrome 24 中对我来说很好。
-
谢谢,我在问题中添加了浏览器+版本。
标签: javascript console prototyping