Do function chaining in JS

by Samar Pattanayak

JavaScript

function add(){
	console.log(arguments)
}
add(2,3)
//chaining
var cal= function(start){
	var that=this;
	this.add= function(x){
    start= start + x;
    return that;// return is mandate here as we are doing chain pattern , so to call "multiply" we need an instance of cal to be retured from "add" method.
  };
  this.multiply= function(y){
  	start= start * y;
    console.log(start);
  	return that;
  };
  this.equal= function(call){
  	call(start);
		return that;	
  }
}
var cObj= new cal(3);
cObj.add(5).multiply(7).equal(function(z){
	console.log("z", z);
});
//observable properties
//INotifyPropertyChanging
//INotifyPropertyChanged
var book(){
	var name='';
  Object.defineProperty(this,'name',{
  	get : function(){
    	return name;
    },
    set : function(val){
    	name= val;
    }
  });
}