Trong các ngôn ngữ hướng đối tượng như Java hay C# , thừa kế (classical inheritance) có hai lợi ích. Thứ nhất, thừa kế là một hình thức dùng lại các đoạn mã, và thứ hai, thừa kế bao gồm đặc tả (specification) các kiểu (types) của một hệ thống, nhờ đó giải phóng người lập trình khỏi việc thực thi các thao tác ép kiểu (casting) – các thao tác ảnh hưởng đến an toàn kiểu.

JavaScript có một số điểm khác biệt. Thứ nhất, JavaScript không có sự ràng buộc kiểu chặt chẽ nên nó không cần thao tác ép kiểu. Thứ hai, các đối tượng (objects) trong JavaScript thừa kế (prototypal inheritance) trực tiếp từ các đối tượng khác – trong khi ở các ngôn ngữ như Java hay C#, các đối tượng là các thực thể (instances) của các lớp (classes) và thừa kế là thừa kế giữa các lớp. Hiểu điểm khác biệt này là quan trọng cho những ai đã quen lập trình Java hay C# và muốn chuyển sang làm việc trên JavaScript.

JavaScript cung cấp một tập các patterns hỗ trợ việc thừa kế. Trong phần này chúng ta sẽ tìm hiểu một số patterns quan trọng:

< Cốt lõi JavaScript