如何实现JavaScript中的6种私有属性方法?

2026-04-03 06:330阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2987个文字,预计阅读时间需要12分钟。

如何实现JavaScript中的6种私有属性方法?

目录:属性、代理、Symbol、WeakMap

目录
  • _prop
  • Proxy
  • Symbol
  • WeakMap
  • #prop
  • ts private
  • 总结

class 是创建对象的模版,由一系列属性和方法构成,用于表示对同一概念的数据和操作。

有的属性和方法是对外的,但也有的是只想内部用的,也就是私有的,那怎么实现私有属性和方法呢?

不知道大家会怎么实现,我梳理了下,我大概用过 6 种方式,我们分别来看一下:

_prop

区分私有和公有最简单的方式就是加个下划线 _,从命名上来区分。

比如:

class Dong { constructor() { this._name = 'dong'; this._age = 20; this.friend = 'guang'; } hello() { return 'I\'m ' + this._name + ', ' + this._age + ' years old'; } } const dong = new Dong(); console.log(dong.hello());

这里的 Dong 就有私有属性 _name、_age,公有属性 friend。

但是这种方式只是一种命名规范,告诉开发者这个属性、方法是私有的,不要调用,但终究不是强制的,如果别人要用也阻止不了。

阅读全文

本文共计2987个文字,预计阅读时间需要12分钟。

如何实现JavaScript中的6种私有属性方法?

目录:属性、代理、Symbol、WeakMap

目录
  • _prop
  • Proxy
  • Symbol
  • WeakMap
  • #prop
  • ts private
  • 总结

class 是创建对象的模版,由一系列属性和方法构成,用于表示对同一概念的数据和操作。

有的属性和方法是对外的,但也有的是只想内部用的,也就是私有的,那怎么实现私有属性和方法呢?

不知道大家会怎么实现,我梳理了下,我大概用过 6 种方式,我们分别来看一下:

_prop

区分私有和公有最简单的方式就是加个下划线 _,从命名上来区分。

比如:

class Dong { constructor() { this._name = 'dong'; this._age = 20; this.friend = 'guang'; } hello() { return 'I\'m ' + this._name + ', ' + this._age + ' years old'; } } const dong = new Dong(); console.log(dong.hello());

这里的 Dong 就有私有属性 _name、_age,公有属性 friend。

但是这种方式只是一种命名规范,告诉开发者这个属性、方法是私有的,不要调用,但终究不是强制的,如果别人要用也阻止不了。

阅读全文