遇到的问题1
我在执行setTiemout之后,效果并没有触发,然后发现语法错误
// 错误写法
for (var i = 0; i < 6; i++) {
setTimeout(
console.log(`这是第 ${i} 次`);
,1000);
}
// 正确写法
for (var i = 0; i < 6; i++) {
(function (t, data) { // 注意这里是形参
setTimeout(function () {
console.log(`这是第 ${t} 次,这是其他参数:${data}`);
}, 1000 * t); // 还是每秒执行一次,不是累加的
})(i, '其他参数') // 注意这里是实参,这里把要用的参数传进去
}
这是个小插曲,之后,我遇到了Uncaught TypeError: this.XXXXX is not a function
原因是,没在一个域内,所以,直接使用this会报错
解决办法1
在函数内新生成一个that
变量,然后用that代替this
var that = this
a(){
that.B
}
遇到的问题2
我直接调用了this变量,可能变量会undefined
解决办法2
不要要this,直接let
一个新变量,使得在作用域是同一片
- Post link: https://www.godhearing.cn/vue-zhong-shi-yong-settimeout-yu-dao-de-wen-ti/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.