我正在使用Google Chrome控制檯。無奈的是,下面的代碼我如何將console.log函數與所有屬性一起使用?
var f = function() {};
f.a = 1;
console.log(f);
只記錄
功能(){}
爲何不打印的f
的屬性,如f.a
和f.prototype
?我如何打印它們?
我正在使用Google Chrome控制檯。無奈的是,下面的代碼我如何將console.log函數與所有屬性一起使用?
var f = function() {};
f.a = 1;
console.log(f);
只記錄
功能(){}
爲何不打印的f
的屬性,如f.a
和f.prototype
?我如何打印它們?
嘗試console.dir
。
console.dir(f);
因爲函數不是一個對象。
如果你這樣做:
var f = function() {};
var my_instance = new f(); // aha!
my_instance.a = 1;
console.log(my_instance);
你應該得到你所期望的。
功能可以是一個類,但從來沒有一個對象。使用new
。
console.dir
列出了對象的所有定義的屬性。我認爲這可能是你要找的。
這怎麼會出現在FF(螢火蟲)
這怎麼會出現在Chromium的控制檯
我不知道是否有任何Chrome文件在此功能上,但there is Firebug documentation上的console
對象。
錯了。函數*是一個對象。 –
JavaScript函數是對象(它們是「第一類」)。將屬性賦值給函數沒有問題(問題中的'f.a')。這是在JavaScript中模擬靜態字段的好方法。在你的例子中,'a'屬性只會出現在'my_instance'實例上。 –