We wish to call the function validate() outside of initValidation(), without necessarily having to call initValidation()
Following is our problem code −
function initValidation(){ // irrelevant code here function validate(_block){ // code here } }
In JavaScript, as we know that functions are nothing but objects, so to achieve this we can tweak our code like this −
function initValidation(){ // irrelevant code here function validate(_block){ // code here console.log(_block); } this.validate = validate; }
What this tweak does is that it makes our parent function to represent a class now, of which validate is a property and we can access it like this −
const v = new initValidation(); v.validate('Hello world');
Following is the complete code with output −
Example
function initValidation(){ // irrelevant code here function validate(_block){ // code here console.log(_block); } this.validate = validate; } const v = new initValidation(); v.validate('Hello world');
Output
The output in the console will be −
Hello world