La
programmation orientée prototype est une forme de
programmation orientée objet sans classe, basée sur la notion de prototype. Un
prototype est un objet à partir duquel on crée de nouveaux objets. Dans le langage de programmation orientée prototype
Self, les propriétés d'un objet, qu'ils renvoient à des attributs ou à des méthodes, sont appelés ; il n'y a pas la distinction entre les slots de données et les slots de code qu'on a avec les classes. La grande différence avec la programmation objet à classes est qu'on peut remplacer le contenu des slots, en ajouter d'autres ou changer la hiérarchie d'
héritage que cela soit prévu dans l'objet original ou pas.