当前位置: 首页 > news >正文

(一)javascript中class类

在 JavaScript 中使用 class 语法可以定义类的结构,其中可以包括静态属性/方法、私有属性/方法、公共属性/方法和受保护属性/方法。这些概念有助于封装和数据隐藏,使得代码更加模块化和安全。下面我会解释这些不同的属性和方法,以及如何在类中使用它们。

1. 静态属性和方法

静态属性和方法属于类本身而不是类的实例。这意味着你无需创建类的实例就可以访问它们。它们通常用于实现不依赖于实例状态的功能。

class MyClass {static staticProperty = "class level property"; // 静态属性static staticMethod() { // 静态方法return 'I am a static method';}
}console.log(MyClass.staticProperty); // 访问静态属性
console.log(MyClass.staticMethod()); // 调用静态方法

2. 私有属性和方法

私有属性和方法只能在类的内部访问,它们不能从类的实例或者子类中访问。在 JavaScript 中,你可以通过 # 前缀来标记私有字段和方法。

class Example {#privateProperty = "I am private"; // 私有属性#privateMethod() { // 私有方法return 'This is a private method';}getPrivateMethod() {return this.#privateMethod(); // 内部访问私有方法}
}const obj = new Example();
console.log(obj.getPrivateMethod()); // 正确访问
// console.log(obj.#privateMethod()); // 错误,外部不能访问私有方法
// console.log(obj.#privateProperty); // 错误,外部不能访问私有属性

3. 公共属性和方法

公共属性和方法是默认的访问级别,可以从类的内部、实例以及继承的子类中访问。

class PublicExample {publicProperty = "I am public"; // 公共属性publicMethod() { // 公共方法return 'This is a public method';}
}const example = new PublicExample();
console.log(example.publicProperty); // 访问公共属性
console.log(example.publicMethod()); // 调用公共方法

4. 受保护属性和方法

JavaScript 原生不直接支持受保护(protected)属性和方法,这些通常是只能在类及其子类中访问。不过,你可以通过约定(如使用下划线 _ 前缀)来模拟这种行为。

class ProtectedExample {_protectedProperty = "I am protected"; // 受保护属性,约定_protectedMethod() { // 受保护方法,约定return 'This is a protected method';}
}class ChildExample extends ProtectedExample {useProtectedMethod() {return this._protectedMethod(); // 子类访问受保护方法}
}const child = new ChildExample();
console.log(child.useProtectedMethod()); // 正确访问
// console.log(child._protectedMethod()); // 可能访问,但不建议(违反约定)

5. 继承

继承允许一个类继承另一个类的方法和属性,是代码重用的一个重要手段。

class Parent {parentMethod() {return 'Method from Parent';}
}class Child extends Parent {childMethod() {return 'Method from Child';}
}const childInstance = new Child();
console.log(childInstance.parentMethod()); // 子类实例访问继承的方法
console.log(childInstance.childMethod()); // 子类实例访问自己的方法

通过上述示例,你可以看到如何在 JavaScript 中使用类的不同属性和方法,以及它们之间的区别。这些技术可以帮助你构建更健壮、易于维护的JavaScript应用程序。

相关文章:

(一)javascript中class类

在 JavaScript 中使用 class 语法可以定义类的结构,其中可以包括静态属性/方法、私有属性/方法、公共属性/方法和受保护属性/方法。这些概念有助于封装和数据隐藏,使得代码更加模块化和安全。下面我会解释这些不同的属性和方法,以及如何在类中…...

【注意力MHA,MQA,GQA,MLA】

注意力机制优化简明图解 1. 多头注意力(MHA) 图示: Input --> [Attention Head 1]--> [Attention Head 2]--> [Attention Head 3]--> ...--> [Attention Head N]--> [Concatenate] --> Output公式: Outpu…...

《从零开始做个摸鱼小网站! · 序》灵感来源

序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了,虽然优惠只有一年&a…...

计算机基础(Windows 10+Office 2016)教程 —— 第5章 文档编辑软件Word 2016(上)

文档编辑软件Word 2016 5.1 Word 2016入门5.1.1 Word 2016 简介5.1.2 Word 2016 的启动5.1.3 Word 2016 的窗口组成5.1.4 Word 2016 的视图方式5.1.5 Word 2016 的文档操作5.1.6 Word 2016 的退出 5.2 Word 2016的文本编辑5.2.1 输入文本5.2.3 插入与删除文本5.2.4 复制与移动文…...

短视频矩阵管理系统源码:实现短视频内容全面布局

随着移动互联网的普及,短视频应用逐渐成为人们获取信息、娱乐休闲的重要途径。为了满足用户多样化需求,实现短视频内容的全面布局,短视频矩阵管理系统应运而生。本文将详细介绍短视频矩阵管理系统的源码实现,帮助您更好地理解并应…...

系统设计中15 个最重要的权衡

系统设计的第一法则:一切都与权衡有关。 在设计系统时,我们需要决定要包含哪些功能以及要忽略哪些功能。每次我们做这个决定时,我们都在进行权衡。在本文中,我们将探讨系统设计中遇到的15个最常见的权衡问题,并使用实…...

12年外贸实战经验,一定对你有帮助!

更多外贸干货及开发客户的方法,尽在微信【千千外贸干货】 NO1 客户总是抱怨价格太高,我常以我们产品质量过硬作为回应。但自从我进入贸易公司后,才真正意识到,在商业世界里,价格才是王道。 NO2 如果顾客提出要去工厂检…...

Linux---进程(3)---进程状态

目录 进程排队 进程状态 运行状态 阻塞状态 挂起状态 Linux内核具体进程状态 浅度睡眠状态 运行状态 深度睡眠状态 暂停状态 可被追踪的暂停状态 终止状态 僵尸状态 进程排队 进程不是一直在运行的,进程放在了CPU上,也不是一直运行的。 进程…...

Drools规则引擎实现停车计费

业务规则: 20:00至次日7时不收费白天7:00-20:00每小时5元,每半个小时计费一次进场30分钟内不收费,但计入时间每天最高收费50元 测试项目搭建 pom<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/…...

【python虚拟环境】安装第三方包失败/failed with error code1

问题&#xff1a; 今天新建了一个项目&#xff0c;默认的虚拟环境pip包版本是19.0.3&#xff0c;太低了。安装第三方包的时候一直超时 解决方案: 更新pip&#xff1a; python -m pip install -U --force-reinstall pip然后就可以正常pip install包了 清华镜像源&#xff1…...

DiffusionModel-latent diffusion,VAE,U-Net,Text-encoder

Diffusers StableDdiffusion 参考: Stable Diffusion原理详解&#xff08;附代码实现) Latent Diffusion 自编码器&#xff08;Variational Autoencoder, VAE&#xff09;&#xff1a; 自编码器是一种无监督学习的神经网络&#xff0c;用于学习数据的有效表示或编码。在稳定扩…...

C# form的移植工作

前言&#xff1a; 目标&#xff0c;将一个项目的form移植到新的工程下&#xff0c;且能够正确编译执行&#xff1a; 1 Copy form的两个文件到新工程下&#xff1a; 比如笔者的logo form 2 修改命名空间&#xff1a; 然后&#xff0c;找到新项目的主程序&#xff1a; 的命名…...

linux防火墙相关命令

防火墙启动关闭 启动防火墙 systemctl start firewalld 关闭防火墙 systemctl stop firewalld 查看状态 systemctl status firewalld 开放或限制端口 开放端口 firewall-cmd --zonepublic --add-port22/tcp --permanent 重新载入一下防火墙设置&#xff0c;使设置生效…...

实习中学到的一点计算机知识(MP4在企业微信打不开?)

我在实习中&#xff0c;常有同事向我反馈说我在微信发的视频格式打不开。这就导致我还要一帧帧的盯着某一个时刻来截图&#xff0c;今天查了一下资料尝试修改视频后缀来解决视频的播放问题。 在网上下载mp4的格式&#xff0c;在本地都能播放&#xff0c;怎么可能发上企业微信就…...

ElasticSearch入门语法基础知识

1、创建测试索引 PUT /test_index_person {"settings": {"analysis": {"analyzer": {"ik_analyzer": {"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"proper…...

【C++】C++应用案例-dolphin海豚记账本

目录 一、整体介绍 1.1、需求和目标 1.2、整体功能描述 二、页面及功能描述 2.1 主菜单 2.2 记账菜单 2.3 查询菜单 2.4 退出功能 三、流程设计 3.1 主流程 3.2 记账操作流程 3.3 查询操作流程 四、代码设计 4.1 核心思路 4.2 项目文件分类设计 4.2.1 头文件 …...

Matlab数据处理学习笔记

1 &#xff1a;数据清洗 注&#xff1a;数据读取 &#xff08;1&#xff09;读取工作表 % 指定要读取的工作表 filename sales_data.xlsx; sheetName Sheet2; % 或者使用工作表编号&#xff0c;例如&#xff1a;sheetNumber 2;% 读取指定工作表的数据 data readtable(fi…...

浏览器中的同源策略、CORS 以及相关的 Fetch API 使用

前言 笔者对前端 Web 技术的认真学习&#xff0c;其实开始于与 Fetch API 的邂逅。当时觉得 fetch() 的设计很不错&#xff0c;也很希望能够请求其它网站下的数据并作处理和展示。学习过程中 HTML 和 CSS 都还好说&#xff0c;由于几乎没有 Web 技术的基础&#xff0c;学习 Fe…...

爬虫 APP 逆向 ---> 粉笔考研

环境&#xff1a; 粉笔考研 v6.3.15&#xff1a;https://www.wandoujia.com/apps/1220941/history_v6031500雷电9 模拟器&#xff1a;https://www.ldmnq.com/安装 magisk&#xff1a;https://blog.csdn.net/Ruaki/article/details/135580772安装 Dia 插件 (作用&#xff1a;禁…...

2024河南萌新联赛第(三)场 河南大学

B. 正则表达式 题目&#xff1a; https://ac.nowcoder.com/acm/contest/87865/B 给出n个地址&#xff0c;每个地址的形式为x.x.x.x&#xff0c;找四个x都满足x>0&&x<255的个数 思路&#xff1a; 首先定义四个数组和一个字符&#xff0c;然后按题目所给的形式…...

SVGnest智能排版优化器:5分钟掌握材料利用率翻倍的终极技巧

SVGnest智能排版优化器&#xff1a;5分钟掌握材料利用率翻倍的终极技巧 【免费下载链接】SVGnest An open source vector nesting tool 项目地址: https://gitcode.com/gh_mirrors/sv/SVGnest 想象一下&#xff0c;您是否经常在激光切割、CNC加工或3D打印中面临材料浪费…...

实测2公里矿用电缆跑网络:用电力载波模块替代光纤,在井下到底靠不靠谱?

井下网络传输技术突围&#xff1a;电力载波在恶劣环境中的实战评估 矿场深处&#xff0c;昏暗潮湿的巷道里&#xff0c;一组工程师正为数据传输问题焦头烂额。传统光纤在煤尘弥漫的环境中频频失效&#xff0c;而工期又迫在眉睫。这时&#xff0c;有人提出了一个大胆的方案——利…...

如何控制Rainmeter皮肤背景视频的有限循环播放次数

如何控制Rainmeter皮肤背景视频的有限循环播放次数 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter作为一款强大的Windows桌面自定义工具&#xff0c;允许用户通过皮肤实现丰富的…...

HP-Socket开发者技能认证考试大纲更新全指南:周期解析与参与攻略

HP-Socket开发者技能认证考试大纲更新全指南&#xff1a;周期解析与参与攻略 【免费下载链接】HP-Socket High Performance TCP/UDP/HTTP Communication Component 项目地址: https://gitcode.com/gh_mirrors/hp/HP-Socket HP-Socket作为高性能TCP/UDP/HTTP通信组件&…...

避坑指南:为什么你的Jetson开发板apt安装Perf总是失败?

深度解析&#xff1a;Jetson开发板为何无法直接安装Perf及高效解决方案 在嵌入式开发领域&#xff0c;Nvidia Jetson系列凭借其强大的AI计算能力成为边缘计算的热门选择。然而当开发者尝试在这类设备上使用标准Ubuntu方法安装性能分析工具Perf时&#xff0c;往往会遭遇意想不到…...

软件外包公司的“末路”:印度同行都慌了?——软件测试从业者的专业视角

在当今数字化浪潮中&#xff0c;软件外包行业曾是全球经济的重要引擎&#xff0c;尤其以印度为代表的外包巨头&#xff0c;凭借低成本人力优势主导了全球市场。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;这一模式正面临前所未有的挑战…...

机器人路径规划算法之VFH算法详解+MATLAB代码实现

目录 一、 运作原理&#xff1a;三步把地图变成方向 1. 建图&#xff1a;构建直方图网格&#xff08;Histogram Grid&#xff09; 2. 降维&#xff1a;生成极坐标直方图&#xff08;Polar Histogram&#xff09; 3. 决策&#xff1a;代价函数与山谷选择 二、 算法演进&…...

【FreeRTOS实战入门】一、从CubeMX到第一个任务:手把手搭建FreeRTOS工程

1. 为什么选择FreeRTOS与CubeMX组合 第一次接触嵌入式实时操作系统时&#xff0c;很多人会纠结选择哪种RTOS。我当年在uC/OS-II和FreeRTOS之间犹豫了很久&#xff0c;最终选择了后者。原因很简单&#xff1a;FreeRTOS不仅完全免费开源&#xff0c;还有STM32CubeMX这个神器加持。…...

SecGPT-14B案例分享:某能源企业OT网络异常通信行为识别过程

SecGPT-14B案例分享&#xff1a;某能源企业OT网络异常通信行为识别过程 1. 引言&#xff1a;当能源网络遭遇“隐形”威胁 想象一下&#xff0c;一家大型能源企业的工业控制系统&#xff08;OT网络&#xff09;正在平稳运行&#xff0c;控制着发电、输电的关键设备。突然&…...

SEO_新手必看的SEO优化入门教程与核心方法(361 )

<h3 id"seoseo">SEO:新手必看的SEO优化入门教程与核心方法</h3> <p>在互联网时代&#xff0c;拥有一个成功的网站不仅仅是有好的设计和内容&#xff0c;还需要通过SEO&#xff08;搜索引擎优化&#xff09;来提升网站的可见性和流量。对于新手来说…...