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_实例
实例上。