Итерация по каждому свойству объекта в JavaScript с помощью Прототипа?

Похоже, вы смешиваете старый и новый стиль промежуточного API. Метод process_request() предшествует Django 1.10 и не будет вызываться автоматически, если ваш класс промежуточного программного обеспечения не использует MiddlewareMixin .

Вы должны будете сами вызвать process_request() из метода __call__():

def __call__(self, request):
    self.process_request(request)  # Call process_request()
    response = self.get_response(request)
    return response

Или, в качестве альтернативы, вы можете наследовать от MiddlewareMixin, чтобы process_request() вызывался Джанго. Однако это имеет смысл, только если вам нужно сделать промежуточное ПО обратно совместимым.

89
задан Tom van der Woerdt 28 December 2011 в 15:27
поделиться

3 ответа

Вы имеете к первому , преобразовывают Ваш литерал объектов в Опытный Хеш :

// Store your object literal
var obj = {foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}

// Iterate like so.  The $H() construct creates a prototype-extended Hash.
$H(obj).each(function(pair){
  alert(pair.key);
  alert(pair.value);
});
42
ответ дан Cameron Shaw 24 November 2019 в 07:08
поделиться

Нет никакой потребности в Прототипе здесь: JavaScript имеет for..in циклы. Если Вы не уверены, что никто не смешал с Object.prototype, проверьте hasOwnProperty() также, т.е.

for(var prop in obj) {
    if(obj.hasOwnProperty(prop))
        doSomethingWith(obj[prop]);
}
552
ответ дан Christoph 24 November 2019 в 07:08
поделиться

Необходимо выполнить итерации по ключам и получить значения с помощью квадратных скобок.

См.: , Как я перечисляю свойства объекта JavaScript?

РЕДАКТИРОВАНИЕ: , Очевидно, это делает вопрос дубликатом.

0
ответ дан Community 24 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: