请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于__proto__的问题

老师您好 我有两个问题
一个是:我之前一直理解__proto__是浏览器给的属性,背后一直以为是对象自身的属性,并没有觉得是原型上的,所以其实是浏览器通过原型上的属性提供的这个属性?
第二个是:instanceof,之前理解是先通过__proto__找到原型,然后通过原型的constructor属性来找到构造函数~,所以这个理解是不是也是不对的,是通过判断构造函数的原型和对象原型是否相等来确定的。

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

1回答

Cloud 2022-03-07 10:51:48

第一个问题: 

是不是自身的属性,可以通过Object.getOwnPropertyDescriptor来判断

https://img1.sycdn.imooc.com//szimg/622571c009b9b79a09400222.jpg

第二个问题 : instanceof

其逻辑可以用下面的代码描述。

function instanceOf(instance, cclass) {    
    let proto = instance.__proto__    
    let prototype = cclass.prototype    
    while (proto) {    
        if (proto === prototype) return true    
            proto = proto.__proto__    
    }    
    return false;    
}


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信