Передача «this» после скобок в методе collection .each ()

0

Поэтому я думаю, что this передается как способ поддерживать правильную ссылку на this которая должна быть в представлении. Хотя я не уверен. Вот код.

SomeView = Backbone.View.extend({

    getView: function(){
        return this.modelView;
    },
    this.collection.each(function(item){
        var ViewType = this.getModelView(item);
    }, this);
 });

Итак, последнее, что после запятой для чего? Должно быть, чтобы поддерживать ссылку на правильное это, но я не мог найти ничего, что дало бы хорошее описание того, что это было и как оно работает. Спасибо за любую помощь.

  • 0
    Это параметр контекста ... this в обратном вызове each() будет ссылаться на объект, переданный как параметр context
  • 1
    underscorejs.org/#each
Показать ещё 2 комментария
Теги:
backbone.js

1 ответ

-1

Контекст "this" является динамическим в javascript. Это означает, что "это" означает что-то другое, когда вы находитесь в каждом цикле. Путь вокруг этой рекламы

SomeView = Backbone.View.extend({
    var self = this;
    getView: function(){
        return this.modelView;
   },
    this.collection.each(function(item){
        var ViewType = self.getModelView(item);
    }, this);
 });

вам может потребоваться разместить var self = это в другом месте в зависимости от объема вашей функции

  • 0
    Хорошо, так что вам больше не нужно передавать «это», верно? Без него он работал бы так же, пока у вас была переменная self = this; Вы можете просто сослаться на это в вашем цикле.
  • 0
    Верный..........
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню