Every Function Object Has Methods apply(), call() and bind().
All these methods useful to call an arbitrary function as if this function was declared as a method on a target object.
[table class=”table table-striped”]
Function,Function invoke,Scope Change,How to call,Args passing
Apply(),Yes,Yes,”Function.prototype.apply ( thisArg, argArray )”,As Array[]
Call(),Yes,Yes,”Function.prototype.call (thisArg , …args)”,As comma separated
Bind(),No,Yes,”Function.prototype.bind ( thisArg , …args)”,As comma separated
[/table]
share = { a52WeekHigh:100, a52WeekLow:55, publishValue:function (demandIncrease){ var d = demandIncrease? '. Demand Increase By:'+demandIncrease+'%' : '' console.log("52 week High and Low:"+ this.a52WeekHigh+'-'+this.a52WeekLow + d); } } pqrShare={ a52WeekHigh:99, a52WeekLow:17 } share.publishValue(); //52 week High and Low:100-55 share.publishValue.apply(pqrShare); //52 week High and Low:99-17 share.publishValue.apply(pqrShare,[12]); share.publishValue.call(pqrShare,13); var bond = share.publishValue.bind(pqrShare,14);//function won't invoke bond(); //52 week High and Low:99-17. Demand Increase By:14%
Output will come as following:
52 week High and Low:100-55 52 week High and Low:99-17 52 week High and Low:99-17. Demand Increase By:12% 52 week High and Low:99-17. Demand Increase By:13% 52 week High and Low:99-17. Demand Increase By:14%