2012-01-17 42 views
16

Một trong những cảnh báo của tôi là đưa ra các kết quả sau:[Object object] có nghĩa là gì? (JavaScript)

[object Object] 

Điều này có ý nghĩa gì chính xác? (Đây là một cảnh báo của một số đối tượng jQuery.)

+0

Xem thêm [what \ [object Object \] có nghĩa là gì?] (Http://stackoverflow.com/q/4750225/1048572) – Bergi

Trả lời

23

Điều đó có nghĩa là bạn đang cảnh báo một thể hiện của một đối tượng. Khi alert nhập đối tượng, toString() được gọi trên đối tượng và triển khai mặc định trả về [object Object].

var objA = {}; 
var objB = new Object; 
var objC = {}; 

objC.toString = function() { return "objC" }; 

alert(objA); // [object Object] 
alert(objB); // [object Object] 
alert(objC); // objC 

Nếu bạn muốn kiểm tra các đối tượng, bạn có nên console.log nó, JSON.stringify() nó, hoặc liệt kê trên đó là tài sản và kiểm tra chúng riêng rẽ sử dụng for in.

4

Chức năng alert() không thể xuất ra một đối tượng theo cách thân thiện với người đọc. Hãy thử sử dụng console.log (đối tượng) thay thế và kích hoạt bảng điều khiển của trình duyệt để gỡ lỗi.

+0

Nhận xét này hoàn toàn trả lời những gì tôi đang cố gắng tìm ra. –

3

Tôi đã viết câu trả lời này trong câu hỏi khác đã được nhân đôi nó, và một sớm tôi muốn đặt câu trả lời đã gần, vì vậy bất kỳ cách nào ở đây là câu trả lời của tôi. hai xu của tôi, và hy vọng một số giúp đỡ khác trong bất kỳ cách nào.

Khi @Matt trả lời lý do [object object] để bạn có ba tùy chọn JSON.stringify(JSONobject), console.log(JSONobject) hoặc lặp lại đối tượng, hãy xem ví dụ cơ bản sau.

var jsonObj={ 
    property1 : "one", 
    property2 : "two", 
    property3 : "three", 
    property4 : "fourth", 
}; 

var strBuilder = []; 
for(key in jsonObj){ 
     if (jsonObj.hasOwnProperty(key)) { 
     strBuilder.push("Key is " + key + ", value is " + jsonObj[key] + "\n"); 
    } 
} 

alert(strBuilder.join("")); 

https://jsfiddle.net/b1u6hfns/

0

Cảnh báo không phải là tốt nhất cho việc hiển thị các đối tượng. Hãy thử console.log? Nếu bạn vẫn thấy Object Object trong giao diện điều khiển, hãy sử dụng JSON.parse như thế này>var obj = JSON.parse(yourObject); console.log(obj)

+0

Không, 'JSON.parse' không giúp ích gì. – Bergi

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