这obj2[k]=obj1[k]遍历的不是对象里的属性值吗?为何属性(键名)也遍历出来了?

这obj2[k]=obj1[k]遍历的不是对象里的属性值吗?为何属性(键名)也遍历出来了?

<script>

        var obj1={

            a:1,

            b:2,

            c:[4,5,6]

        };

        //实现浅克隆

        var obj2={};


        for(var k in obj1){

            //每遍历一个k属性,就给object2也添加一个同名的K属性

            //值和object1的k属性值相同

            obj2[k]=obj1[k];

           

        }

        console.log(obj2);

    </script>


     这obj2[k]=obj1[k]遍历的不是对象里的属性值吗?为何属性(键名)也遍历出来了?



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

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

1回答
好帮手慕慕子 2021-01-25 09:37:45

同学你好,因为for...in遍历对象的属性,也就是代码中的k表示obj1的属性,可以输出查看结果,示例:

http://img1.sycdn.imooc.com//climg/600e1fe70949229306670213.jpg

http://img1.sycdn.imooc.com//climg/600e1fef098fafa404410141.jpg

知道k表示属性(键名)之后,那么obj1[k]获取的就是对应的属性值,obj2[k] = obj1[k] 这句代码就是给obj2添加一个同名的属性,并obj1[k]属性值赋值给obj2这个同名的属性.

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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