Tôi tò mò muốn biết có cách nào giả mạo Array.isArray()
với đối tượng do người dùng xác định hay không.Bạn có thể giả mạo Array.isArray() với đối tượng do người dùng xác định không?
Từ cuốn sách Patterns JavaScript:
Array.isArray([]); // true
// trying to fool the check
// with an array-like object
Array.isArray({
length: 1,
"0": 1,
slice: function() {}
}); // false
Đó phản đối rõ ràng thất bại, nhưng là có cách nào khác để làm điều đó? Đây là sự tò mò tuyệt đối, và không phải vì tôi nghĩ rằng bạn có thể vặn với .isArray()
trong mã máy khách thông thường (mặc dù nó rõ ràng sẽ là tuyệt vời để biết nếu bạn có thể!).
Bây giờ bạn đã nhắc nhở tôi để hỏi một câu hỏi tiếp theo vào lúc: http://stackoverflow.com/questions/8672204/can- bạn-set-the-internal-class-property-of-an-ecmascript-object –