用firebug我发现点击链接调用javascript函数
<a href="#" onclick="viewHide(this);return false;">
Run Code Online (Sandbox Code Playgroud)
但我无法在页面源中找到它的实现.
有可能得到它吗?
该网站是希伯来语,但我不认为这是问题:链接文本触发此功能点击文章后面的任何评论标题.
删除了死的ImageShack链接
我希望能够检查给定的函数是否为空.也就是说,它的身体里没有任何东西,例如:
function foo() {}
function iAmEmpty(a) {
// yep, empty
}
Run Code Online (Sandbox Code Playgroud)
通过一些初步的游戏,我有一些我认为可能没问题的东西,通过使用toString()和一些正则表达式.
function foo(a, b, c) {}
/^function[^{]+\{\s*\}/m.test(foo.toString()); // true
function bar(a, b, c) { var d; }
/^function[^{]+\{\s*\}/m.test(bar.toString()); // false
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有更好的方法?你可以看到上面有什么问题吗?
我原型,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.