Занимательная задачка

Небольшой вопрос-тренировка:

 1 var Queue = function () {
 2     var me = this instanceof Queue ? this : new Queue();
 3     me.p = [];
 4     return me.add.apply(me, arguments);
 5 };
 6 
 7 Queue.prototype = {
 8     add : function () {
 9         var callbacks = A.Array(arguments, 0, true);
10         this.p.splice.apply(this.p,[this.p.length,0].concat(callbacks));
11         return this;
12     }
13 };

Внимание, вопрос: что именно делает вторая строка метода add (10-я строка примера) и зачем нужна ее запись именно в таком виде. Ну а также, было бы здорово услышать, зачем, по вашему мнению, нужна такая функция-конструктор и для чего предназначен этот класс.

blog comments powered by Disqus