您的位置:首页技术文章
文章详情页

javascript - 对象,原型链中有设置了set,get方法的属性. 则对象中也会自动写入此属性

浏览:67日期:2023-05-04 10:23:56

问题描述

1: 一个对象的 原型链 中 如果设置了set,get方法的属性, 则该对象会自动写入此属性.

2: 代码如下

let test = {a:1,b:2 } Object.defineProperty(test,’a’,{set(){ return ’set’},get(){ return ’get’} }) let o = {}; o.__proto__ = test;

3: 在控制台中查看 o

javascript - 对象,原型链中有设置了set,get方法的属性. 则对象中也会自动写入此属性4: 为什么o对象也有了a属性?

问题解答

回答1:

眼见不一定为实……

不信你Object.getOwnPropertyDescriptor(o, ’a’)与Object.getOwnPropertyDescriptor(test, ’a’)分别执行试试。

这应该只是chrome的调试工具为了方便显示打造的效果,firefox下就不会出现这种情况。

标签: JavaScript
相关文章: