2011-12-19 19 views

Trả lời

14

Hãy thử console.dir.

console.dir(f); 
0

Vì hàm không phải là đối tượng.

Nếu bạn làm:

var f = function() {}; 
var my_instance = new f(); // aha! 
my_instance.a = 1; 
console.log(my_instance); 

Bạn sẽ nhận được những gì bạn mong đợi.

Chức năng có thể là một lớp, nhưng không bao giờ là đối tượng. Sử dụng new.

+0

Sai. Hàm * là * một đối tượng. –

+0

Chức năng JavaScript là các đối tượng (chúng là "hạng nhất"). Không có vấn đề với việc gán một thuộc tính cho một hàm ('f.a' trong câu hỏi). Đó là một cách hay để mô phỏng các trường tĩnh trong JavaScript. Trong ví dụ của bạn, thuộc tính 'a' sẽ chỉ xuất hiện trên cá thể' my_instance'. –

3

console.dir liệt kê tất cả các thuộc tính được xác định của đối tượng. Tôi nghĩ rằng đây có lẽ là những gì bạn đang tìm kiếm.

Làm thế nào này xuất hiện trong FF (Firebug)

console.dir in Firebug

Làm thế nào này xuất hiện trong giao diện điều khiển của Chromium

console.dir in Chromium

Tôi không chắc chắn nếu có bất kỳ tài liệu Chrome về chức năng này, nhưng there is Firebug documentation trên console đối tượng.

Các vấn đề liên quan