Skip to content

如何实现一个私有变量, 用 getName 方法可以访问, 不能直接访问 #30

Description

@Hongbusi

通过函数的创建形式:

function People() {
  var name= 'Hongbusi'  
  this.getName=function() {
    return name;
  }
}
const people = new People()
console.log(people.name)
console.log(people.getName())

另外在这里讲一下网上一种错误的实现方案,通过配置 defineProperty 的不可枚举,不可修改:

const user = {
  name: 'Hongbusi',
  getName: function() {
    return this.name
  }
}

Object.defineProperty(user, 'name', {
  // 不可枚举不可配置
})

配置不可枚举只是让某个属性不能通过 for..inObject.keys() 的方式遍历出来,直接 user.name 一样还是可以访问到这个属性。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    JSjavascript

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions