for ( key in obj)不定义key可以吗?

来源:17-8 其它知识点-解答

锅里的芒果

2018-01-15

function myforEach (obj,fn){

  // var key

  if(obj instanceof Array){

    obj.forEach(function(item,index){

      fn(item,index) //调用fn函数并传实参进去

    })

  } else {

    for (key in obj) {

      fn (obj[key],key)

    }

  }

}

obj1={

  'name':'wendy',

  'age':28

}

myforEach(obj1,function(value,key){

  console.log('this is value',value)

})

老师,你的例子中我自己写了一下,发现不定义key也是可以的,

key属于参数,如果不定义key,JS解析的时候就会自动把它解析为undefined,我们这里可以不定义key吧?

写回答

1回答

双越

2018-01-15

key 怎么是参数呢?

你把 var key 这一行注释掉,然后后面直接用了 for (key in obj) {...} ,这样 key 会成为一个全局变量。污染了全局环境,后果非常严重!!!

0
0

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程