培训课题目记录3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了培训课题目记录3相关的知识,希望对你有一定的参考价值。

这一题我建议各位先去自己用浏览器试一试,发现结果不符合你所想再回来看下面的内容。
        同样还是先放源码:技术分享
跟之前一样在关键部分标了序号,那么开始吧。
先别看setObj的函数体部分,等到它第一次被调用的时候再回头去看。我们从var p=..这里开始看。
 var p={name:"xixi",age:24}  这段声明了一个全局变量p引着一个对象,姑且称这个对象为A。然后我们把p扔给setObj函数:setObj(p);  好,开始执行这个函数:
            因为p当中存放的是对象A的地址,所以①所进行的是将函数外面的p所存放的地址赋给函数的局部变量:o,此时o中也放着A的地址。也就是说我们接下来如果对o进行操作,就相当于对A进行操作。至此程序里有两个变量:在window下的p以及在setObject函数的活动对象内的局部变量o。  
               ②赋一个空对象给o。此时o不再指向A,转而指向一个空对象,姑且称这个对象为B。
               ③给上面刚新建的空对象B新建一个属性name,并赋值为小红。 
 
                最后console.log(p);至此请思考一下,p从最开始到现在,有放开过它一开始指向的那个对象么?  是没有的。p从头到尾一直引着对象A。而在对象A身上只发生过一件事:①那里让它的name的值起变化。如果还没明白为什么 p 一直引着A 请再看看蓝色字部分。

所以输出结果是 :技术分享
========================================================================================================= 
第二部份的代码只是少了上面的②③两步而已,就略过了。技术分享

                                                                                            

                                                                                                        ————以上内容皆有本人原创,欢迎在评论区一起讨论、对文章进行纠错。如需转载请邮箱联系博主征得同意,并注明转载出处 博主邮箱:[email protected]

以上是关于培训课题目记录3的主要内容,如果未能解决你的问题,请参考以下文章

培训 | 图像识别协会培训课,这样上!

CloverETL培训题目

信管师培训之第七节课作业(项目沟通管理+项目合同管理)

信管师培训之第九节课作业(变更管理+信息系统安全管理)

信管师培训之第八节课作业(项目采购管理+项目信息(文档)和配置管理)

管理者的角色修炼-第一课总结