Atraso na próxima função na cadeia de métodos

Eu estou tentando aprender mais sobre o método encadeamento em JavaScript e gostaria de saber a maneira correta de criar um atraso sem jQuery para a próxima função na cadeia:

var foo = function() {
    this.delay = function(per) {
        setTimeout(start, per);
        return this;
    };
    this.start = function() {
        alert('start!');
    };
};

var bar = new foo().delay(1000).start();

questionAnswers(2)

yourAnswerToTheQuestion