构造函数和class类挂载属性和方法的相互转化

news/2024/5/18 23:11:10 标签: javascript, ecmascript, class, 构造函数
class="baidu_pl">
class="article_content clearfix">
class="markdown_views prism-atom-one-dark">

class是es6新出的关键词,方便我们快速建立类和继承的关系,es6以前我们都是使用function构造函数模拟类
本文讲述了function构造函数和类中定义属性方法的对应关系,主要有以下四点
1.实例属性
2.实例方法
3.原型方法
4.静态方法

类中定义

class="prism language-class="tags" href="/tags/JAVASCRIPT.html" title=javascript>javascript">class="token keyword">class class="token class-name">Dog1class="token punctuation">{
            class="token function">constructorclass="token punctuation">(class="token punctuation">)class="token punctuation">{
                class="token comment">//实例属性,类不可读
                class="token keyword">thisclass="token punctuation">.name1class="token operator">=class="token string">'escaay'
                class="token comment">//实例方法,类不可读
                class="token keyword">thisclass="token punctuation">.class="token function-variable function">Hiclass="token operator">=class="token keyword">functionclass="token punctuation">(class="token punctuation">)class="token punctuation">{
                    consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'hi'class="token punctuation">)class="token punctuation">;
                class="token punctuation">}
            class="token punctuation">}
            class="token comment">//原型方法
            class="token function">sayclass="token punctuation">(class="token punctuation">)class="token punctuation">{
                consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'say'class="token punctuation">)class="token punctuation">;
            class="token punctuation">}
            class="token comment">//静态方法
            class="token keyword">static class="token function">barkclass="token punctuation">(class="token punctuation">)class="token punctuation">{
                consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'狗叫'class="token punctuation">)class="token punctuation">;
            class="token punctuation">}
        class="token punctuation">}
        class="token keyword">let dog1class="token operator">=class="token keyword">new class="token class-name">Dog1class="token punctuation">(class="token punctuation">)
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog1class="token punctuation">.nameclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog1class="token punctuation">.Hiclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog1class="token punctuation">.sayclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog1class="token punctuation">.barkclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'------------'class="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog1class="token punctuation">.name1class="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog1class="token punctuation">.Hiclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog1class="token punctuation">.sayclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog1class="token punctuation">.barkclass="token punctuation">)class="token punctuation">;

结果打印
在这里插入图片描述

构造函数中定义

class="prism language-class="tags" href="/tags/JAVASCRIPT.html" title=javascript>javascript">class="token keyword">function class="token function">Gog2class="token punctuation">(class="token punctuation">)class="token punctuation">{
            class="token comment">//实例属性,类不可读
            class="token keyword">thisclass="token punctuation">.nameclass="token operator">=class="token string">'escaay'
            class="token comment">//实例方法,类不可读
            class="token keyword">thisclass="token punctuation">.class="token function-variable function">Hiclass="token operator">=class="token keyword">functionclass="token punctuation">(class="token punctuation">)class="token punctuation">{
                    consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'hi'class="token punctuation">)class="token punctuation">;
                class="token punctuation">}
                class="token comment">//下面这个函数只能在内部取用,无论是类还是实例都不能调用他
                class="token keyword">function class="token function">innerFunclass="token punctuation">(class="token punctuation">)class="token punctuation">{

                class="token punctuation">}
                class="token comment">//下面的属性也是
                class="token keyword">let abcclass="token operator">=class="token string">'123'
        class="token punctuation">}
        class="token comment">//原型方法
        class="token class-name">Dog2class="token punctuation">.prototypeclass="token punctuation">.class="token function-variable function">sayclass="token operator">=class="token keyword">functionclass="token punctuation">(class="token punctuation">)class="token punctuation">{
            consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'say'class="token punctuation">)class="token punctuation">;
        class="token punctuation">}
        class="token comment">//静态方法
        Dog2class="token punctuation">.class="token function-variable function">barkclass="token operator">=class="token keyword">functionclass="token punctuation">(class="token punctuation">)class="token punctuation">{
            consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'bark'class="token punctuation">)class="token punctuation">;
        class="token punctuation">}
        class="token keyword">let dog2class="token operator">=class="token keyword">new class="token class-name">Dog2class="token punctuation">(class="token punctuation">)
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog2class="token punctuation">.nameclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog2class="token punctuation">.Hiclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog2class="token punctuation">.sayclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(dog2class="token punctuation">.barkclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(class="token string">'------------'class="token punctuation">)class="token punctuation">;
         class="token comment">//类或者构造函数自带name属性,返回类的名字,例如Dog2.name返回'Dog2'
         class="token comment">//但是作者水平有限,还不明白这个name挂载的位置
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog2class="token punctuation">.name1class="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog2class="token punctuation">.Hiclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog2class="token punctuation">.sayclass="token punctuation">)class="token punctuation">;
        consoleclass="token punctuation">.class="token function">logclass="token punctuation">(Dog2class="token punctuation">.barkclass="token punctuation">)class="token punctuation">;

结果打印
在这里插入图片描述


http://www.niftyadmin.cn/n/450460.html

相关文章

S7-1200通过外部端子控制V20变频器启停+MODBUS读写频率的具体方法

S7-1200通过外部端子控制启停+MODBUS读写频率的具体方法 本例中是通过S7-1200PLC外部端子的方式控制变频器启停,用Mobus RTU通讯读写变频器频率。 硬件连接: 屏蔽双绞线将V20变频器P+,N-连接到CPU上CB1241 T/RA 和T/RB, T/RB接P+,T/RA接N-。TA和T/RA用短线连上,TB和T/RB用短…

自动化测试工具 AirTest 的使用方法与简介

目录 前言: Airtest简介 1.基于图像识别的Airtest框架 2.基于UI识别的Poco框架 Airtest环境搭建 Airtest布局 Airtest使用步骤 第一步:连接移动设备 第二步:创建一个.air文件(也就是我们的测试脚本) 第三步&#xff1a…

Linux学习入门笔记

计算机硬件 计算机五大基本部件 控制器 -----> 协调各个部件运算器 -----> 算术、逻辑运算存储单元 ----->内存、外存输入单元输出单元 cup 由控制器、运算器组成 计算机操作系统 操作系统 OS 管理和控制计算机系统中的硬件和软件资源,用于在用户与系统…

ECharts 多 Y 轴时如何处理零刻度线对齐

系列文章目录 文章目录 系列文章目录前言一、问题的背景二、解决方案1.设置 Y 轴的 min 和 max 值2.调整 Y 轴的分割数3.使用 offset 属性调整 Y 轴的位置4.添加辅助线 总结 前言 ECharts 是一款强大的前端数据可视化库,支持多种图表类型和丰富的交互功能。当我们在…

使用 Flask 的g对象和 MySQL 实现用户登录和注销功能

在Flask中,g对象是一个特殊类型的对象,被称为"上下文全局变量"。它在一次请求的生命周期内存储信息,并且可以在整个请求过程中访问和共享。 g对象对于存储用户登录信息非常有用。例如,当用户通过验证登录时&#xff0c…

CentOS7待机后无法连接网络问题

1.重启网络服务:使用以下命令重启网络服务,以确保网络连接重新正常运行 sudo systemctl restart NetworkManager 2.打开 /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf 文件 sudo vi /etc/NetworkManager/conf.d/default-wifi-powersave…

基于SpringBoot的校园请假管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 校园请假信息管理系统…

【数据库系统概论】教案填空题

【数据库系统概论】教案填空题 文章目录 【数据库系统概论】教案填空题第一章 绪论第二章 关系数据库第三章 关系数据库标准语言sql第四章 数据库安全性第五章 数据库完整性第六章 关系数据理论第七章 数据库设计第八章 数据库编程第九章 关系查询处理和查询优化第十章 数据库恢…