метод проверки внутри Backbone Model не вызывается?

Начинаю изучать Backbone, пытаюсь выполнить некоторую простую проверку внутри моей модели Person, но метод validate, кажется, не запускается, когда я устанавливаю новую эпоху. Может кто-нибудь объяснить, где я могу пойти не так по этому поводу? Не хочу продолжать свое обучение, пока не пойму это правильно.

JS

var Person = Backbone.Model.extend({

    defaults: {
        name: 'John Doe',
        age: 30,
        occupation: 'working'
    },

    validate: function(attrs) {

        console.log(attrs);

        if ( attrs.age < 0 ) {
            return 'Age must be positive, stupid';
        }

        if ( ! attrs.name ) {
            return 'Every person must have a name, you fool.';
        }

    },

    work: function() {
        return this.get('name') + ' is working.';
    }

});

В настоящее время я просто получаю и устанавливаю значения в консоли, поэтому:

var person = new Person({
    name: 'Lady Madonna',
    age: 23
});

person.on('error', function(model, error){
    console.log(error);
});

Когда я устанавливаю age как отрицательное значение, метод validate не вступает в силу:

person.set('age', -55);

Ответы на вопрос(3)

Ваш ответ на вопрос