Hãy xem xét mã bên dưới. console.log
đầu tiên ghi lại hình ảnh một cách chính xác và bạn có thể xem các thuộc tính của nó trong hình ảnh bên dưới. Tuy nhiên, khi tôi thử đăng nhập một tài sản của nó vào giao diện điều khiển, tôi nhận được undefined
!Tại sao thuộc tính đối tượng này không xác định?
console.log(that.data[0].cards); //works -- see image below
console.log(that.data[0].cards.E); //undefined
console.log(that.data[0].cards['E']); //undefined
console.log(that.data[0].cards.hasOwnProperty('E')); //false
var test = JSON.stringify(that.data[0]);
console.log(test); // {}
for(var key in that.data[0].cards) {
console.log('hello????') //doesn't appear in the console
}
console.log(Object.keys(that.data[0].cards)); //[]
console.log(that.data[0].cards.propertyIsEnumerable("E")); //false
console.log(that.data[0].cards.__lookupGetter__("E")); //undefined
Kết quả trong giao diện điều khiển:
Bất kỳ ý tưởng những gì đang xảy ra ở đây? Thuộc tính xml
bên trong số that.data[0]
cũng phải có các thuộc tính bên trong nó - được đặt tên giống nhau, trên thực tế, như các thuộc tính trong cards
.
FWIW, tôi nhận được điều tương tự trong Firebug (hình ảnh trên bảng điều khiển ở trên là Chrome).
Không thể giúp bạn nếu chúng ta không thể tái tạo hành vi. Bạn có thể cung cấp JSON không? –
Bạn có thể chuyển kết quả của JSON.stringify (đó) không? – FreeCandies
'JSON.stringify (that)' dường như không làm gì ngoại trừ việc mang tập lệnh đến một điểm dừng hoàn toàn.Không ném một lỗi hoặc bất kỳ lỗi nào khác, nhưng không có gì chạy sau cuộc gọi đến 'JSON.stringify (đó)'. Tôi đã cập nhật câu hỏi của mình để hiển thị các kết quả của 'JSON.stringify (that.data [0] .cards)', nó chỉ cho thấy nó là một đối tượng trống '{}'. – maxedison