javascript - JavaScript OOP 的问题
问题描述
我目前正在学习 JavaScript 面向对象编程,似乎遇到了一个我无法通过谷歌搜索解决的问题,所以我将尝试堆栈溢出,尽管我很少在论坛上提问。
无论如何,在尝试将一些旧的非 OOP 代码转换为 OOP 代码后,我在玩函数时遇到了错误。请注意,可能有比我要询问的错误更多的错误,所以不要相信下面的任何代码。我得到的错误是 Uncaught TypeError: Cannot read property fadeInAnimations
of undefined。
此外,非常感谢所有改进此代码的建议。
let mainSection = {
msTime : 0,
fadeInAnimation : ((element, delayTime) => {
$(element).delay(delayTime).fadeIn(1000)
}),
mainPageElements : [`.traninigTimes`, `.registration`, `.trainingFee`].forEach((element) => {
this.fadeInAnimation.fadeInAnimations(element, this.msTime)
this.msTime += 1000;
})
};
解决方案
这个上下文在 forEach 回调中是不同的。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
在回调中 this 指的是回调上下文。
let mainSection = {
msTime : 0,
fadeInAnimation : ((element, delayTime) => {
$(element).delay(delayTime).fadeIn(1000)
}),
mainPageElements : [`.traninigTimes`, `.registration`, `.trainingFee`].forEach(((element) => {
this.fadeInAnimation.fadeInAnimations(element, this.msTime)
this.msTime += 1000;
}).bind(this))
};
推荐阅读
- c++ - 为什么shrink_to_fit(如果请求得到满足)会导致重新分配?
- apache-spark - 仅获取那些不为空的字段名称
- java - 无法使用 SQL Server 启动嵌入式容器
- python - gender_select.select.select_by_value(entry['gender']) AttributeError: 'Select' 对象没有属性 'select'
- prometheus - Prometheus Alertmanager dc 警报消息 onyl dc 团队
- python - 导入 flask_bcrypt 在 ubuntu 16.04 环境中不起作用
- mysql - 如何获取周数和年份的月份
- flutter - 断言失败:第 168 行 pos 15:'icon != null':不正确
- ios - Swift 本机代码返回 iOS 版本而不是 bool
- reactjs - VSCode 在 .tsx 文件中使用 AS 关键字显示类型断言错误