关于hasOwnProperty这个属性有点晕,老师看注释写的对吗?

关于hasOwnProperty这个属性有点晕,老师看注释写的对吗?

//自定义属性

var obj1 = {

    a:1,

    b:2

}


var obj2 = Object.create(obj1);

//原型链上的属性

obj2.c = 3;

obj2.d = 4;

for(let i in obj2){

    //hasOwnProperty 判断是否为原型链属性 是 返回true 不是 false

    if(obj2.hasOwnProperty(i)){

        document.body.innerHTML +=(i+':'+ obj2[i]+'</br>');


    }


}


正在回答

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

1回答

同学你好,注释不正确,“hasOwnProperty”是用来判断属性是不是对象自身的,如果是自身的就返回true。而通过Object.create()方法创建的obj2,obj2的原型指向的是obj1,所以c、d是obj2自身上的属性,而a、b是obj2原型(obj1)上的属性,可以打印obj2看一下:

http://img1.sycdn.imooc.com//climg/5f3348a609bccabe03820099.jpg

http://img1.sycdn.imooc.com//climg/5f3348a90951532304470233.jpg

正确的注释如下:

http://img1.sycdn.imooc.com//climg/5f3348b6093503ab08000633.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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