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

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

https://img3.mukewang.com/5c247ad90001440a04400271.jpg

4: 为什么o对象也有了a属性?

森栏
浏览 399回答 1
1回答

牧羊人nacy

眼见不一定为实……不信你Object.getOwnPropertyDescriptor(o, 'a')与Object.getOwnPropertyDescriptor(test, 'a')分别执行试试。这应该只是chrome的调试工具为了方便显示打造的效果,firefox下就不会出现这种情况。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript