请问老师,这里的对象属性move换成this后代码不能实现,为什么?

来源:6-1 JS和CSS3结合实现动画

weixin_慕沐9050777

2022-12-11 11:42:05

let box1 = document.getElementById('box1');

let btn = document.getElementById('btn');

const move= {

n : 1,

lock : true,

fun :()=>{

btn.onclick = ()=>{

if(move.lock){

move.lock = false;

if(move.n ==1){

box1.style.transition = 'left 2s linear 0s';

box1.style.left = '1000px';

move.n = 2;

}else if (move.n == 2){

box1.style.transition = 'left 2s linear 0s';

box1.style.left = '200px';

move.n = 1;

}

setTimeout(()=>{

move.lock = true;

},2000);

}

}

}

};

move.fun();


写回答

1回答

imooc_慕慕

2022-12-11

同学你好,箭头函数中的this指向window,打印参考如下:

https://img.mukewang.com/climg/6395580e096f48ee07260082.jpg

代指不了move对象,因此这种写法是不对的。

请按照老师的思路进行学习,学习起来会更容易一些。

祝学习愉快~

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程