关于循环计数

关于循环计数

根据老师的代码

function fn(){

var xh={};

var xm={};

var xh.brother=xm;

var xm.sister=xh;

}

此时,xh和xm的计数为2,fn执行完成之后各减1。

那是不是不需要互相调用也可以呢?还是其他思路?

比如:

function fn(){

var xh={};

var xm={};

var xh.brother=xm; //xm计数为2

}

函数执行完,xh调用归零,xm减1?还是因为xh归零所以xm再减1所以不会有这个问题?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2019-05-23 19:37:12

你好,第二段代码中,xm指向了{}地址,xh指向了{}地址,xh指向的这个地址中有一个属性指向了xm这个{}地址,当方法调用,局部变量会解除引用,但是之前xh指向的那个地址中brother属性还指向了xm之前指向的{}地址,所以还有一次引用没有解除。

祝学习愉快!

  • 提问者 夏帛 #1
    所以我的意思是,除了老师视频中的例子,但凡存在有我例子中那种引用变量有属性指向其他引用的,计数都不会清空?所以循环不循环没有关系啊?
    2019-05-23 20:25:47
  • 好帮手慕星星 回复 提问者 夏帛 #2
    你好,视频中只是举了一个互相引用的例子,你的代码中也是这种情况,虽然没有互相引用,但是有多次引用的情况,计数是不会清空的。
    2019-05-24 10:19:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师