2

我试图从“steps”数组中的函数内部访问“helperFunction”。显然,使用“this”并不是指正确的对象,但我似乎无法找到正确的解决方案。

const横幅动画={属性:0,步骤:[函数one(){this.property=this.helperFunction();},函数two(){console.log(this);}],帮助程序函数(){//做一些计算并返回结果返回1;},doSteps(steps=this.steps){步骤.forEach(步骤=>{setTimeout(步骤,100);});}};bannerAnimation.doSteps();

非常感谢大家的帮助!

1

1答案1

重置为默认值
2

你可以通过使用绑定在回调中设置超时正确绑定正确的上下文。

const bannerAnimation={属性:0,步骤:[函数one(){this.property=this.helperFunction();},函数two(){console.log(this);}],helperFunction(){//做一些计算并返回结果返回1;},doSteps(steps=this.steps){var self=此;步骤.forEach(步骤=>{setTimeout(step.bind(self),100);});}};bannerAnimation.doSteps();

1
  • @镍矿,但this.property=。。。不会。
    – 杰米克
    评论 2020年1月21日11:08

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.