为了账号安全,请及时绑定邮箱和手机立即绑定

用变量和属性有什么差别吗?

用变量和属性有什么差别吗?

狐的传说 2018-12-20 18:15:48
简单做了一个图片抖动的方法。发现在其中声明变量来存数值和属性存数值最后结果不一样,看了好久,没看出问题出在哪里。请各位帮我解答一下。
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

从题主的代码来看,如果把pos赋值给obj中的一个属性的话,在抖动的过程中鼠标移动到元素上就会造成抖动偏移,因为每次执行shake的时候obj.pos属性都会根据当前top刷新(虽然接下来就因为“正在抖动中”跳出了函数),因此会干扰到timer中的取值,而使用局部变量则没有这个问题(timer中使用的pos变量始终是最初开始抖动时定义的那个变量)

修改的话你把if (obj.onOff) { return; }提取到shake函数开头就可以避免这个问题了。


查看完整回答
反对 回复 2019-01-10
  • 1 回答
  • 0 关注
  • 511 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信