JavaScript中的私有/静态属性介绍

当我们谈到JavaScript中的“私有”和“静态”属性时,我们实际上是在谈论不同类型的属性。

私有属性

私有属性是指只能在类的内部使用的属性。这意味着它们不能通过类的实例或外部访问。为了理解私有属性,让我们来看一个简单的例子:

class Person {
  #name = '';

  set name(name) {
    this.#name = name;
  }

  get name() {
    return this.#name;
  }
}

在这个例子中,我们使用了一个带有井号(#)前缀的变量名来定义私有属性name。在set nameget name方法中,我们可以访问这个私有属性。

const person = new Person();
person.name = 'John Doe'; // 使用 setter 方法设置私有属性
console.log(person.#name); // 这里会报错,因为私有属性不能被访问
console.log(person.name); // 使用 getter 方法访问私有属性

可以看出,我们不能直接访问私有属性,但可以通过公共接口来存储和检索这些属性。

静态属性

与私有属性不同,静态属性是绑定到类本身的属性而不是类的实例。静态属性对于存储与类相关的信息非常有用,例如类的版本号、缺省值或敏感信息,因为它们不会被多个类实例所访问或更改。让我们来看一个例子:

class MyClass {
  static PI = 3.14159;
  static HELLO = 'Hello, World!';
}

console.log(MyClass.PI); // 3.14159
console.log(MyClass.HELLO); // Hello, World!

在这个例子中,我们使用static关键字将PIHELLO静态属性绑定到MyClass本身上。我们可以使用MyClass.PIMyClass.HELLO来访问这些属性,而不需要创建MyClass的实例。

另一个示例:

class Task {
  static taskCount = 0;

  constructor(name) {
    this.name = name;
    Task.taskCount++;
  }

  static count() {
    return Task.taskCount;
  }
}

let task1 = new Task('任务1');
let task2 = new Task('任务2');

console.log(Task.count()); // 2

这个例子中,我们使用静态属性taskCount来记录Task类的实例数量。在每次创建任务的时候,我们增加计数器,然后通过静态方法count返回实例数量。 注意,我们可以从静态方法count中访问静态属性taskCount

通过使用静态属性和方法,我们可以方便地记录类相关的信息,而不必担心另一个类实例会更改或访问这些值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中的私有/静态属性介绍 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS下高效拼装字符串的几种方法比较与测试代码

    下面是关于“JS下高效拼装字符串的几种方法比较与测试代码”的攻略。 什么是拼装字符串 在 JavaScript 中,我们可以将字符串拼接起来形成新的字符串。拼接字符串的方法有很多种,其中一些方法效率比其他方法更高。 常见的拼装字符串方法 使用 + 运算符: const strA = "Hello"; const strB = "…

    JavaScript 2023年5月28日
    00
  • 常用的9个JavaScript图表库详解

    常用的9个JavaScript图表库详解 1. Chart.js Chart.js 是一个使用 HTML5 canvas 元素创建图表的 JavaScript 库。它可以绘制多种类型的图表,例如线性图、柱状图、饼图等等。 Chart.js 具有良好的文档和易于使用的 API。它适合初学者和有经验的开发者。 以下是一个简单的例子: <canvas id=…

    JavaScript 2023年5月27日
    00
  • jquery.validate表单验证插件使用方法解析

    jquery.validate表单验证插件使用方法解析 前言 jquery.validate是jQuery社区中一款强大的表单验证插件,它可以在前端快速地对用户提交的表单数据进行验证,以提升用户体验和保证数据的安全性。本文将详细讲解jquery.validate的使用方法,包括插件的下载、引入、初始化、常用验证规则等。同时,本文也将提供两个实例来帮助读者更好…

    JavaScript 2023年6月10日
    00
  • 分析web应用内引用依赖的占比

    背景 针对目前团队自己开发的组件库,对当前系统内引用组件库占比进行统计分析,以实现对当前进度的总结以及后续的覆盖度目标制定。 主要思路 目前找到的webpack分析插件,基本都是针对打包之后的分析打包之后的chunk进行分析,但是我希望的是分析每个页面中的import数,对比一下在所有页面中的import数中有多少是使用了组件库的。所以就在网上看了一些相关资…

    JavaScript 2023年4月17日
    00
  • [翻译] JW Media Player 中文文档第4/4页

    首先需要说明的是,JW Media Player 是一款广泛使用的媒体播放器。其官方文档提供了详细的中文翻译,这里以第4/4页为例,为大家讲解如何将其翻译出来。 以下是完整的翻译攻略: 1. 下载原始文档 首先需要从官网上下载原始的英文文档,网址为:https://developer.jwplayer.com/jw-player/docs/developer…

    JavaScript 2023年6月11日
    00
  • JavaScript类型系统之基本数据类型与包装类型

    JavaScript类型系统之基本数据类型与包装类型 在JavaScript中,数据类型可以分为两类:基本数据类型和引用数据类型。其中,基本数据类型(primitive data type)包括:Number、String、Boolean、null和undefined,而引用数据类型(reference data type)则包括:Object、Array、…

    JavaScript 2023年6月10日
    00
  • Javascript发送AJAX请求实例代码

    当需要通过Javascript与服务器进行异步数据交互时,就需要使用AJAX技术。本篇攻略将提供一个基本的AJAX请求代码示例以及一个带参数的AJAX请求代码示例。 AJAX请求示例 步骤一:创建XMLHttpRequest对象 AJAX通过XMLHttpRequest对象与服务器进行数据交互。在Javascript中,可以通过以下代码创建XMLHttpRe…

    JavaScript 2023年6月11日
    00
  • Lua极简入门指南(一):函数篇

    Lua极简入门指南(一):函数篇 前言 Lua是一种高效、轻量级的脚本语言,广泛应用于游戏开发、网络编程、嵌入式系统等领域。本篇文章将介绍Lua语言中的函数定义和使用,帮助初学者快速理解Lua的基本语法。 函数定义 在Lua中,函数是一种独立的代码块,可以重复使用,从而提高代码的复用性。Lua中的函数定义和其他编程语言有所不同,具体语法如下: functio…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部