хороший пример OO JS? - PullRequest
       5

хороший пример OO JS?

5 голосов
/ 08 августа 2010

Может кто-нибудь указать мне правильное направление какого-то реального мира объектно-ориентированного JavaScript? Я изучаю ОО для javascript из нескольких книг, но все примеры, приведенные в этих книгах, сводятся к объекту собаки, унаследованному от прототипа животного или подобного. Я действительно хочу увидеть что-то более существенное.

Я смотрел на jQuery и похожие библиотеки (база, прототип), но считаю их подробными примерами. Я искал сценарий, в котором я отчетливо вижу использование наследования (классического или прототипного).

Ответы [ 2 ]

5 голосов
/ 08 августа 2010

Хорошие примеры «реального мира» для изучения OO javascript - это изучение некоторых структур javascript. Некоторые из них поддерживают и используют ОО в рамках своего собственного кода фреймворка:

Они предоставляют отличную справочную информацию и различные стратегии для написания OO javascript.

2 голосов
/ 08 августа 2010

IMO, прототип javascript очень полезен, и классический ООП не нужен.

В качестве реального примера рассмотрим google maps v3 api .Давайте реализуем новый OverlayView: // implement an OverlayView // MyOverlay.prototype = new google.maps.OverlayView();</p> <p>// the "constructor" function // function MyOverlay(position, node, map) { // set the parameters // this.position = position; this.node = node; this.map = map; this.setMap(this.map); }</p> <p>// required onAdd function // MyOverlay.prototype.onAdd = function() { // observe the getPanes function inherited from OverlayView // var panes = this.getPanes(); // bla bla // }</p> <p>// required draw function // MyOverlay.prototype.draw = function() { // bla bla // } // .. other functions //</p> <p>// now instantiate an object // var instance = new MyOverlay(position, node, map);

Если это не работает для вас, многие внешние библиотеки (например, Prototype, dojo, jquery и т. Д.) Предлагают отличные решения для классического ООП.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...