用Object.defineProperty定义在原型上的属性为什么会屏蔽实例对象的属性

如题,Obejct.defineProperty到底做了什么事情,会将实例上对应的属性也屏蔽掉

class List {

        constructor() {

            this.members = [...arguments]

            this.length = this.members.length

            this.pos = 0

            console.log(this.length)

        }

    }

    

    Object.defineProperty(List.prototype, 'length', {

        get() {return this.members.length + 1},

        set() {},

        enumerable: false,

        configurable: false,

    })

    

    

    let myList = new List('Jack', 'Rose', 'Tom')

    

    console.log(myList.length) // 4


繁星点点滴滴
浏览 614回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript