__proto__原来是属性访问器

2020-09-10  本文已影响0人  小李不小

proto 只能添加属性,没办法替换

var hd={name:'123'}
hd.__proto__={
    show(){
        console.log(this.name)
    }
}
hd.__proto__.hide=function(){
    console.log('hide')
}


hd.__proto__=99
hd.show();

console.log(hd)

看下面结果 hd.proto=99 无效,这说明没办法替换

image.png

上面说了,我们要替换proto,我们要怎么做呢

var b={}
b=Object.create(null);//把b的对象原型转为空 
b.__proto__='123'
//点击
console.dir(b)

Object.create把b的对象原型转为空 就可以了,去掉对象的原型

这个题目面试的时候,可能问的比较多,大家多注意一下


image.png
上一篇 下一篇

猜你喜欢

热点阅读