Попытка реализовать базовый класс по умолчанию в JavaScript не уверен, что это правильно - PullRequest
0 голосов
/ 15 августа 2011

Я пришел из C ++ / Java, но у меня проблемы с получением правильного синтаксиса для этого javascript.Это то, что я пытался сделать.Я хочу базовый класс TemplateBaseView, который наследуется от Backbone.View.TemplateBaseView переопределяет функцию инициализации и рендеринга из Backbone.View.Я также использую underscore.js.Вот краткие попытки, любая помощь будет принята.заданная по умолчанию функция рендеринга и инициализации и указанный атрибут шаблона.

Любая помощь?

1 Ответ

1 голос
/ 15 августа 2011

Вы хотите использовать встроенный extend от магистрали.

var TemplateBase = Backbone.View.extend({
  'this': 'is',
  'a': 'class'
});

var HeaderView = new TemplateBase;

Пара вещей.Вы можете ссылаться на TemplateBase как на «класс», но в javascript такого на самом деле нет, это просто полезное имя для людей из языков классов.Технически это прототип.

Далее: не забывайте использовать new при создании экземпляра TemplateBase, в противном случае вы просто вызываете функцию и устанавливаете для своего объекта все, что возвращает эта функция, а не экземплярэтот прототип.

Наконец, просто соглашение, большинство людей будут использовать для своей выгоды свои «классы», но не их экземпляры.Поэтому я могу изменить HeaderView на headerView

edit

После прочтения вашего вопроса, может быть, вы хотите, чтобы HeaderView был классом?В каком случае:

var HeaderView = TemplateView.extend({
  template: _.template( $("#header_template").html())
});

var headerInstance = new HeaderView;
...