1.
A = function(){
this.number = 0;
};
A.prototype.plus = fuction(num){
this.number += num;
return this;
};
A.prototype.log = fuction(){
console.log(this.number);
return this;
};
var a = new A();
a.plus(1);
a.plus(2);
a.log();
//тот же результат будет при
new A().plus(1).plus(2).log();
//т.к. функции возвращают указатель на экземпляр объекта
2.
Вот тут почитай с заголовка "Аннотация зависимости"