Home > Back-end >  how to call a arrow function inside another function from outside?
how to call a arrow function inside another function from outside?

Time:11-05

function x(name){
    this.name = name;

    const arrow =() =>{
        setTimeout(() => {
            console.log("Arrow"   this.name)
        },100)
    }

    const func1 = () => {
        setTimeout(() => {
            console.log("Normal"   this.name)
        },100) 
    }

    arrow(name);
    func1(name);
}

x("BOB")

how to call func1 from outside after calling x("BOB") function and how arrow functions change the value of this compared to normal functions

CodePudding user response:

If you want to call arrow outside, you can try to return the function and call like this (closure concept)

    function x(name){
    this.name = name;

    const arrow =() =>{
        setTimeout(() => {
            console.log("Arrow"   this.name)
        },100)
    }

    const func1 = () => {
        setTimeout(() => {
            console.log("Normal"   this.name)
        },100) 
    }

    arrow(name);
    func1(name);
    
    return arrow
}
arrow = x("BOB")
arrow()

But I prefer, you to try OOPs structure.

CodePudding user response:

I believe that the following example is exactly what you want:

function x(name) {
  this.name = name;

  const arrow = () => {
    setTimeout(() => {
      console.log("Arrow"   this.name);
    }, 100);
  };

  const func1 = () => {
    setTimeout(() => {
      console.log("Normal"   this.name);
    }, 100);
  };

  arrow(name);
  func1(name);

  x.func1 = func1;
  x.arrow = arrow;
}

x("nawaf");
x.func1();
x.arrow();

https://codesandbox.io/s/goofy-water-y8oux

  • Related