javascript .prototype

Radko

Registered
Някой може ли да ми обясни за какво точно се използва .prototype в джава скрипт? примерно

[js]function MyObject() {}
MyObject.prototype.test = function() { alert('OK'); } [/js]

:)
 
http://tutsplus.com/lesson/prototypal-inheritance-and-refactoring-the-slider/

Можеш да изгледаш този видео урок. Мисля, че ще ти стане доста ясно какво е Prototypal Inheritance. Все пак можеш да потърсиш точно тези две думи в google и ще ти излязат купища статии :)
 
Общо взето пише, че prototype се използва за добавяне на свойства (и методи) към обект, които свойства (и методи) са достъпни във всички копия (instances) на този обект.

Повече инфо и тук
 
Всяка функция в JS може да се ползва като конструктор на обект - Class. Прототипа на класа е обект, който дефинира общи функции и методи за инстанциите на класа. Когато се опиташ да достъпиш метод/свойство на обект, първо проверява дали е налично в обекта, ако е така го ползва, ако не - проверява дали е налично в прототипа на класа, чиято инстанция е обекта и го ползва от там(ако е налично), като вика метода с контекст текущата инстанция. Проблем при този модел е, че например ако имаш масив в прототипа на класа, той ще се ползва от всички обекти, инстанции на този клас. Оптималния вариант е да ползваш прототипа само за общите методии, а всички свосйтва да пресъздаваш в конструктора. В общи линии е това, надявам се помага : )
 

Горе