Prototyyppipohjainen ohjelmointi (engl. prototype-based programming) on eräs olio-ohjelmointiin liittyvistä ohjelmointiparadigmoista.
Prototyyppipohjaiset ohjelmointikielet tukevat monia olio-ohjelmoinnin piirteitä, kuten kapselointia, jäsenmuuttujien ja metodien määrittelyä ja oliokielien tapaista jäsenmuuttujien ja metodien käyttöä. Tärkeimpänä erona normaaliin olio-ohjelmointiin on varsinaisien luokkamäärityksien puuttuminen. Luokan mukaiset oliot luodaan joko rakentajafunktion tai -metodin avulla tyhjästä tai kloonaamalla olemassa oleva olio. Toiminnallisuuden uudelleenkäyttö (perintä) tapahtuu kloonaamalla toinen olio, joka toimii uuden olion ”prototyyppinä”.
Prototyyppipohjaisia ohjelmointikieliä ovat muun muassa JavaScript, Lua, Self ja Io.