Backbone render возвращают это
Я пытаюсь выяснить некоторые из "шаблонов", чтобы настроить проект Backbone. В приведенных ниже примерах в "render" -функции автор возвращает экземпляр 'this'.
Почему это? Является ли это конкретным примером или что-то общее для Backbone? Я не понимаю, почему нужно возвращать 'this' в "render" -функцию.
Примеры
http://backbonefu.com/2011/08/filtering-a-collection-in-backbone-js/
Вызов плагина jQuery в методе рендеринга Backbone
Ответы
Ответ 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();