Подтвердить что ты не робот

Backbone render возвращают это

Я пытаюсь выяснить некоторые из "шаблонов", чтобы настроить проект Backbone. В приведенных ниже примерах в "render" -функции автор возвращает экземпляр 'this'.

Почему это? Является ли это конкретным примером или что-то общее для Backbone? Я не понимаю, почему нужно возвращать 'this' в "render" -функцию.

Примеры

http://backbonefu.com/2011/08/filtering-a-collection-in-backbone-js/

Вызов плагина jQuery в методе рендеринга Backbone

4b9b3361

Ответ 1

Это обычная практика, поэтому вы можете вызвать render() и связать вызов другого метода.

Это общий шаблон, в котором представления не вставляют свой HTML-контент на страницу, и это задание выполняется экземпляром, который создает экземпляр представления в первую очередь.

Тогда то, что вам нужно написать в коде, создающем представление, выглядит примерно так:

var myView = new MyView({ model: myModel });
myView.render();
$(myDOMElement).html( myView.el );

Но если render() возвращает сам вид, вы можете написать приведенный выше код следующим образом:

var myView = new MyView({ model: myModel });
$(myDOMElement).html( myView.render().el );

Ответ 2

Значение возвращаемого this заключается в предоставлении возможностей цепочек.

Например, давайте предположим:

 var obj = {
      prop1 : 0,
      method1 : function(){
      },
      method2 : function(){
      }
 };
 //Then you could do something like:
 obj.method1();
 obj.method2();
 obj.prop1 = 1;

Все действия на obj вам нужно сделать отдельно.

Теперь рассмотрим:

 var obj = {
      prop1 : 0,
      method1 : function(){
          return this;
      },
      method2 : function(){
          return this;
      }
 };
 //Now you could do these
 obj.method1().prop1 = 1;
 obj.method1().method2().method1();