Javascript 如何将console.log函数与其所有属性放在一起?

Javascript 如何将console.log函数与其所有属性放在一起?,javascript,Javascript,我正在使用谷歌浏览器控制台。令人沮丧的是,下面的代码 var f = function () {}; f.a = 1; console.log(f); 只会记录 函数(){} 为什么它不打印f的属性,例如f.a和f.prototype?如何打印它们?因为函数不是对象 如果您这样做: var f = function () {}; var my_instance = new f(); // aha! my_instance.a = 1; console.log(my_instance); 你

我正在使用谷歌浏览器控制台。令人沮丧的是,下面的代码

var f = function () {};
f.a = 1;
console.log(f);
只会记录

函数(){}

为什么它不打印
f
的属性,例如
f.a
f.prototype
?如何打印它们?

因为函数不是对象

如果您这样做:

var f = function () {};
var my_instance = new f();  // aha!
my_instance.a = 1;
console.log(my_instance);
你应该得到你所期望的


函数可以是类,但不能是对象。使用
new

尝试
console.dir

console.dir(f);

console.dir
列出对象的所有已定义属性。我想这可能就是你要找的

这在FF(Firebug)中的显示方式

这在Chromium的控制台中的显示方式


我不确定是否有关于此功能的Chrome文档,但在
控制台
对象上。

错误。函数是对象。JavaScript函数是对象(它们是“第一类”)。将属性指定给函数没有问题(
f.a
)。这是在JavaScript中模拟静态字段的好方法。在您的示例中,
a
属性将仅出现在
my_实例
实例上。