Thỉnh thoảng có một JS framework hoặc thư viện nghĩ rằng đó là một ý tưởng thực sự khôn ngoan để thêm một số tính năng mới thuần vào nguyên mẫu của Object
hoặc Array
. Tôi không thể tìm thấy thêm bất kỳ ví dụ nào ngay bây giờ, nhưng tôi nhớ rằng tôi đã có vấn đề với điều đó trước đây. Tất nhiên, làm như vậy phá vỡ vòng lặp cũ tốt for(...in...)
, bởi vì đột nhiên những thuộc tính này bây giờ cũng được liệt kê. Để có được xung quanh nó, bạn phải kiểm tra tất cả các tài sản liệt kê với .hasOwnProperty()
trước khi truy cập. Đó là cồng kềnh, khi cố gắng viết mã mạnh mẽ.Bạn có thể tạo một đối tượng trong Javascript không được kế thừa từ Object không?
Vì vậy, tôi đã tự hỏi - có cách nào mà tôi có thể làm cho các đối tượng của riêng tôi như vậy, rằng họ không kế thừa từ Object
? Ban đầu chơi xung quanh với .prototype
không mang lại kết quả nào. Có lẽ có một số lừa cho nó? Hay mọi thứ sẽ luôn được thừa kế từ Object
và tôi không thể làm gì với nó?
Đã thêm: Tôi đoán tôi nên lưu ý rằng tôi muốn nó cho các tập lệnh máy khách trong trình duyệt và khả năng tương thích phải bao gồm IE6 hoặc ít nhất IE7. Các yêu cầu phiên bản trình duyệt khác là khoan dung hơn, mặc dù càng tốt, tất nhiên. (Vâng, thật đáng buồn, thế giới doanh nghiệp vẫn sống trong IE cấp thế giới ...)
* bad * cũ 'for (... in ...)' loop chắc chắn –
@RobAgar - tại sao vậy? Thực sự, tôi cảm thấy mệt mỏi khi viết những thứ như 'for (var i, l = myArray.length; i
thường là các khuôn khổ thay đổi nguyên mẫu, cũng cung cấp cách lặp qua các phần tử. Trong Mootools, 'myObj.each()' sẽ làm công việc .. cũng '[" foo "," bar "]. Each()' – pleasedontbelong