__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