如何用ES6实现类的私有变量?

2026-04-01 16:260阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何用ES6实现类的私有变量?

封装实现类的私有变量方式:使用私有变量,不共享变量,通过`new`关键字和`person`构造函数创建实例,内部`this`指向`Tom`。在构造函数内部,创建新的局部空间,再次执行全部代码。代码如下:

javascriptclass Person { constructor(name) { let _num=100; this.name=name; }}

闭包实现类的私有变量方式

私有变量不共享

通过 new 关键字 person 的构造函数内部的 this 将会指向 Tom,开辟新空间,再次全部执行一遍,

class Person{ constructor(name){ let _num = 100; this.name = name; this.getNum = function(){ return _num; } this.addNum = function(){ return ++_num } } } const tom = new Person('tom') const jack = new Person('jack') tom.addNum() console.log(tom.getNum()) //101 console.log(jack.getNum()) //100

私有变量可共享

为避免每个实力都生成了一个新的私有变量,造成是有变量不可共享的问题,我们可以将这个私有变量放在类的构造函数到外面,继续通过闭包来返回这个变量。

阅读全文

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

如何用ES6实现类的私有变量?

封装实现类的私有变量方式:使用私有变量,不共享变量,通过`new`关键字和`person`构造函数创建实例,内部`this`指向`Tom`。在构造函数内部,创建新的局部空间,再次执行全部代码。代码如下:

javascriptclass Person { constructor(name) { let _num=100; this.name=name; }}

闭包实现类的私有变量方式

私有变量不共享

通过 new 关键字 person 的构造函数内部的 this 将会指向 Tom,开辟新空间,再次全部执行一遍,

class Person{ constructor(name){ let _num = 100; this.name = name; this.getNum = function(){ return _num; } this.addNum = function(){ return ++_num } } } const tom = new Person('tom') const jack = new Person('jack') tom.addNum() console.log(tom.getNum()) //101 console.log(jack.getNum()) //100

私有变量可共享

为避免每个实力都生成了一个新的私有变量,造成是有变量不可共享的问题,我们可以将这个私有变量放在类的构造函数到外面,继续通过闭包来返回这个变量。

阅读全文