Lập_trình_dựa_trên_nguyên_mẫu

Lập trình dựa trên nguyên mẫu (tiếng Anh: prototype-based programming) là một kiểu lập trình hướng đối tượng, trong đó việc tái sử dụng hành vi (được gọi là kế thừa) được thực hiện thông qua quá trình tái sử dụng các đối tượng hiện có thông qua ủy quyền đóng vai trò nguyên mẫu (prototype). Mô hình này cũng có thể được gọi là lập trình nguyên mẫu, hướng mẫu, không phân lớp hoặc lập trình dựa trên thực thể. Delegation (tiếng Việt: ủy nhiệm hàm hay ủy quyền) là tính năng ngôn ngữ hỗ trợ lập trình dựa trên nguyên mẫu.Lập trình dựa trên nguyên mẫu sử dụng các đối tượng tổng quát, sau đó có thể được nhân bản và mở rộng. Lấy trái cây làm ví dụ, một đối tượng "trái cây" sẽ đại diện cho các tính chất và chức năng của trái cây nói chung. Một đối tượng "chuối" sẽ được nhân bản từ đối tượng "trái cây" và các thuộc tính chung dành riêng cho chuối sẽ được thêm vào. Mỗi đối tượng "chuối" riêng lẻ sẽ được nhân bản từ đối tượng "chuối" chung. So sánh với mẫu hình dựa trên lớp, trong đó một lớp "trái cây" sẽ được mở rộng bởi một lớp "chuối".Ngôn ngữ lập trình hướng nguyên mẫu đầu tiên là Self, được phát triển bởi David UngarRandall Smith Lưu trữ 2009-11-12 tại Wayback Machine vào giữa những năm 1980 để nghiên cứu các chủ đề trong thiết kế ngôn ngữ hướng đối tượng. Kể từ cuối những năm 1990, các mẫu hình không lớp (classless paradigm) ngày càng trở nên phổ biến. Một số ngôn ngữ hướng nguyên mẫu hiện tại là JavaScript (và các hiện thực ECMAScript khác như JScriptFlash 's ActionScript 1.0), Lua, Cecil, NewtonScript, Io, Ioke, MOO, REBOLAHK.