web前端技术博客
您当前的位置:web前端 > JavaScript知识点

JavaScript 在原型链中设置属性值

作者:只会切图的前端 发布时间:2021-01-05 15:31:07 浏览量:20

考虑obj.a=123;
1、如果当obj对象中存在名为a的属性时,这条赋值语句只会修改原有属性的值。
2、如果a不直接存在于obj中时,则会遍历原型链,如果原型链中也不存在时,则直接添加到obj中。
3、如果a不直接存在于obj中,但存在于原型链中时,有三种情况:
     a、属性a的 writable:true 时,则直接在obj中新增一个名为a的新属性。
     b、属性a的 writable:false 时,则无法在obj中新增属性,也不能修改已有属性a的值。
     c、属性a是一个 setter 时,则不会在obj中新增属性,而是调用该 setter,且不会重新定义该 setter。
     注意:第二第三种情况可以使用 Object.defineProperty(obj,"a",{}) 向obj中新增a属性。

原型链中设置属性值

发表评论
验证码:
联系我
粤ICP备17092958号