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();