刚学这个,代码没看懂查了半天

for和for里面的代码我没见过看不懂,不知道什么意思。查了半天
<div id="box">点我啊,跑!div>
    <script>
      function animate(obj, option) {
        clearInterval(obj.timer);                           // 防止多次触发事件,重复开启定时器
        obj.timer = setInterval(function() {
          var flag = true;                                  // 元素对象移动的标志,true表示已完成
          for (var k in option) {
              console.log(k);
            var leader = parseInt(getStyle(obj, k)) || 0; // 获取指定元素当前属性值
            console.log(leader);
            var target = option[k];                         // 获取指定元素目标属性值
            var step = (target - leader) / 10;              // 计算每次移动的步长
            step = step > 0 ? Math.ceil(step) : Math.floor(step);
            leader = leader + step;           // 计算属性值
            obj.style[k] = leader + 'px';     // 设置属性值
            //div.style[top] = 82px;
            if (leader != target) {           // 判断是否完成移动
              flag = false;
            }
          }
          if (flag) {                         // 移动完成后清除定时器
            clearInterval(obj.timer);
          }
        }, 15);
      }


for (var k in option)
option是个可迭代对象
k是从里面拿出来的每一个元素
循环次数就是option的长度