Cách tốt nhất để mở rộng lớp javascript là gì để Lớp B kế thừa mọi thứ từ lớp A (lớp B mở rộng A)?Javascript mở rộng lớp
Trả lời
Hãy xem Simple JavaScript Inheritance và Inheritance Patterns in JavaScript.
Phương pháp đơn giản nhất có lẽ là thừa kế chức năng nhưng có ưu và nhược điểm.
Liên kết thứ hai đa qua đơi. – Jarrett
Liên kết thứ hai hiện có tại đây: http://bolinfest.com/javascript/inheritance.php –
Douglas Crockford có một số lời giải thích rất tốt của thừa kế trong JavaScript:
- prototypal inheritance: cách 'tự nhiên' để làm những việc trong JavaScript
- classical inheritance: gần gũi hơn với những gì bạn tìm thấy trong hầu hết các ngôn ngữ OO, nhưng loại chạy ngược lại các hạt của JavaScript
extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
};
Bạn cũng có thể thêm bộ lọc vào vòng lặp for.
Đây không phải là những gì OP hỏi và cũng không chính xác "mở rộng" - bạn nên lặp qua Object.keys hoặc ít nhất là kiểm tra hasOwnProperty –
Nhu cầu hasOwnProperty kiểm tra và sẽ ghi đè lên các phương thức và thuộc tính nếu chúng giống nhau, không có khả năng gọi phương thức siêu lớp sau này. –
- 1. Mở rộng trong javascript
- 2. Lớp động mở rộng
- 3. Mở rộng nhiều lớp
- 4. PHP - mở rộng phương pháp như mở rộng một lớp
- 5. phương pháp mở rộng để mở rộng lớp tĩnh
- 6. Mở rộng ActiveXObject trong javascript
- 7. Cách mở rộng lớp css
- 8. Mở rộng Groovy lớp String
- 9. Lớp mở rộng là gì?
- 10. lớp bên trong mở rộng
- 11. CSS-Less lớp mở rộng lớp với lớp giả
- 12. Mở rộng các lỗi/ngoại lệ JavaScript
- 13. javascript prototype mở rộng phương pháp
- 14. C#: Mở rộng từ hơn 1 lớp
- 15. get mẹ mở rộng lớp trong php
- 16. khai báo proporder trên lớp mở rộng
- 17. CSS - Mở rộng thuộc tính lớp học
- 18. lấy tên tệp của lớp mở rộng
- 19. Kỳ lạ PHP mở rộng lớp IMagick
- 20. Phương pháp mở rộng trên lớp tĩnh?
- 21. Mở rộng Lớp tuyên bố PDO
- 22. ViewBag return null trong Lớp mở rộng
- 23. Java: Mở rộng lớp lúc chạy
- 24. Mở rộng các lớp nội trang SWIG
- 25. PHP-OOP mở rộng hai lớp?
- 26. Mở rộng lớp Java với Scala Trait
- 27. Mở rộng các lớp tĩnh PHP
- 28. Mở rộng enum trong các lớp thừa
- 29. Mở rộng lớp học cho hoạt động
- 30. Cách mở rộng các lớp học bootstrap
Thực tế ... có cách nào khác nhưng b.prototype = new a; – xpepermint
JavaScript không có lớp. Do đó, toàn bộ câu hỏi này không có ý nghĩa. Bạn đang nói về Java? Hoặc ActionScript? Những người * làm * có các lớp học, nhưng họ hoàn toàn không có gì để làm với JavaScript. Hay bạn đang nói về một số thư viện JavaScript thực hiện OO dựa trên lớp trong JavaScript, ví dụ như MooTools? Trong trường hợp đó, câu trả lời phụ thuộc vào thư viện mà bạn đang nói đến. –
Có đối tượng Class của tôi: https://github.com/reduardo7/sjsClass/blob/master/sjsclass.js –