Suppose I have the following coding scenario:
export const test = () => {
return (
var1,
var2,
var3
) => {
return Object.freeze({
getVarOne: () => var1,
getVarTwo: () => var2,
getVarThree: () => var3,
total: () => var1 + var2 + var3,
squareTotal: () => Math.pow(total(), 2)
})
}
}
let obj1 = test();
let obj2 = obj1(1, 2, 3);
let obj3 = obj2.squareTotal();
What is a way I can access the total method from the squareTotal method? I keep getting undefined for the total method call.
There is an undefined
totalfunction called as argument toMath.pow. If you intended to call the member of the object, then you need to specify that, as currently, it is a variable reference, not a property.You can use
this, but you must make the method a standardfunctioninstead of an arrow function -- you can use the ES6 object method notation (omitting thefunctionkeyword):