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

for循环中的D函数是否创建了不同的函数?按照之前的解释,for循环中的函数,会被for循环中后面的

for循环中的D函数是否创建了不同的函数?按照之前的解释,for循环中的函数,会被for循环中后面的

叮当猫咪 2018-12-20 18:14:00
<script>var a = [];//console.log(D); // undefinedfor(var i=0;i<3;i++){function D(){    console.log('0');}a[i] = D;}console.log(a[0]==a[1]); // false---->for循环第一遍时产生的函数和第二遍for循环产生的函数不相等console.log(a[0]);---------》但是分别输出函数,看到的是相同的函数console.log(a[1]);---------》但是分别输出函数,看到的是相同的函数</script>
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

js 的函数都是保存在堆中,赋值给变量时其实赋值的是指针,而 function D() {} 这种方法其实每次都是在堆中创建了一个新的函数,只不过这几个函数内容相同而已。


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

添加回答

举报

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