es6 class 为什么在外面能访问类的私有属性? 类中定义的私有属性能继承吗?

在看阮一峰的es6教程,发现类class的私有方法能在外面访问,这是为什么,私有属性不是不能在外面访问吗? 还有,为什么私有属性能被子类继承和实例继承?

var foo = Symbol('foo')
        class Parent {
            
            constructor(name){
                this.name = name
            }
            
            [foo](){ // 私有方法
                console.log('foo')
            }
        }

        class Child extends Parent{
            constructor(){
                super()
            }
        }
        Child.prototype[foo]() // 'foo' 被子类传承
        
        var p = new Parent('dog')
        p[foo]() // 'foo' 被实例继承
阅读 4.1k
1 个回答

并没有私有方法 只是方法名为symbol不易被访问到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题