归纳整理ES6中的class类知识点

本篇文章给大家带来了关于javascript的相关知识,e其中主要介绍了关于class类的相关问题,es6引入了class类这个概念,通过class关键字可以定义类,这就是更符合我们平时所理解的面向对象的语言,下面一起来看一下,希望对大家有帮助。

归纳整理ES6中的class类知识点

【相关推荐:javascript视频教程、web前端】

飞书知识问答 飞书知识问答

飞书平台推出的AI知识库管理和智能搜索工具

飞书知识问答 45 查看详情 飞书知识问答

class简介

传统的JS只有对象的概念,没有class类的概念,因为JS是基于原型的面向对象语言,原型对象特点就是将属性全部共享给新对象。

ES6引入了class类这个概念,通过class关键字可以定义类,这就是更符合我们平时所理解的面向对象的语言。

class Person{   //定义一个名为Person的类    // 构造函数,用来接受参数    constructor(x,y){        this.x = x;    //this代表的是实例对象        this.y = y;    }    todoSome(){  //这是个类的方法,不需要加function,有多个方法也不用逗号隔开        alert(this.x + "的年龄是" +this.y+"岁");    }}export default  Person;

静态方法和静态属性

静态方法和静态属性,是使用static关键字的属性和方法

静态方法

static classMethod(){console.log('123456')}

静态方法不会被子类继承,子类不能调用静态方法中的this,指向的是类class,不是类的实例。因此静态方法只能通过类名来调用,不能通过实例来调用

let p = new Point();p.classMethod();  // 报错

静态属性

static prop = 1 ;  // 静态属性

静态属性不能被子类继承,子类不能调用静态属性只能通过类名来调用,不能通过类的实例来调

class继承extends

class可以用过extends关键字来继承ES6继承,子类构造函数中必须使用super()。因为ES6继承是先将父类实例对象的属性和方法,加到this上面,然后再调用子类的构造函数修改这个this如果子类没有定义constructor方法,super()会默认添加上子类会继承父类的方法和属性,但是静态方法和属性必须通过子类的类名来调用

import classtest from "./classtest";  //先引入父类class Man extends classtest{    constructor(x,y){   //构造函数尽量与父类参数保持一致        super();   //利用super()关键字,这个必须放在子类构造函数中的第一位置        this.x = x;        this.y = y;    }}export default  Man;

class的取值函数getter和存值函数setter

getter、setter就是给class的属性读值、传值用的。

取值函数getter和存值函数setter可自定义赋值和取值行为,当一个属性只有getter没有setter的时候,这个属性就是只读属性,不能赋值,第一次初始化也不行。

如果变量定义为私有的(定义在类的花括号外面),就可以只使用getter不使用setter。

let data=[1,2,3,4];  //放在类外面,属于私有变量,可以只读取class Person{    // 构造函数    constructor(x,y){        this.x = x;        this.y = y;    }    get x(){        console.log('获得name');        return this._name;    //get读取属性    }    set x(x){        console.log("设置name");          this._name=x;   //set给属性赋值    }    get data(){        return data;   //只读属性,属性返回的值只能是私有变量    }    todoSome(){        alert(this.x + "的年龄是" +this.y+"岁");    }    static dayin(){        alert("dayin");    }}export default  Person;

如何使用:

 var test= new this.$myutils.classtest('haha','18');  test.x="haha3";   //改变了实例化时候的x的值  test.todoSome();  //输出:haha3的年龄是18岁。这里就已经不是实例化时候的haha了  console.log(test.data);   //结果:打印[1,2,3,4]

注意事项:

1、在类中定义方法时候,不可以给方法加上function关键字,因为JS中构造函数是用function定义的,两个隔开。

2、所有方法不要用逗号隔开,否则会报错。

【相关推荐:javascript视频教程、web前端】

以上就是归纳整理ES6中的class类知识点的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/546813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 18:04:02
下一篇 2025年11月9日 18:07:39

相关推荐

  • 函数闭包变量作用域如何理解

    闭包是函数记住并访问其外部作用域变量的机制,即使外部函数已执行完毕。例如内部函数引用外部函数变量并被返回时,该变量仍被保留,形成闭包。它用于数据私有化、模块模式和保持回调中的状态,如计数器中封装value变量,实现受控访问。 闭包是 JavaScript 中一个核心概念,理解它需要搞清楚函数内部的变…

    2025年12月16日
    000
  • 跨语言浮点数精度:硬件、编译器与数据类型选择指南

    本文探讨了在C/C++、D和Go等多种编程语言中实现浮点数计算时,如何确保结果精度的一致性。核心内容围绕硬件架构、浮点运算库以及编译器优化对精度产生的影响,并分析了常见浮点数据类型(如32位float和64位double)在不同语言间的对应关系,旨在为跨语言开发提供精确性考量。 浮点数精度受控的关键…

    2025年12月16日
    000
  • Golang在云原生环境中性能测试示例

    答案是:在云原生环境中,Golang性能测试需结合pprof、k6等工具,通过明确指标、模拟生产环境、持续监控与CI/CD集成,系统性地定位瓶颈并优化资源利用。 Golang在云原生环境中进行性能测试,说白了,就是为了确保你的Go应用在容器化、微服务化、弹性伸缩的云上跑得又快又稳,能扛住预期的流量冲…

    2025年12月15日
    000
  • 如何获取一个对象的所有属性和方法?

    答案:获取对象所有属性和方法需结合Reflect.ownKeys()和for…in。Reflect.ownKeys()返回对象自身所有键(包括字符串和Symbol,可枚举与不可枚举),而for…in可遍历原型链上的可枚举属性,配合hasOwnProperty()可区分自身与继…

    2025年12月14日
    000
  • 什么是闭包(Closure)?它有哪些典型用途?

    闭包是函数与其词法环境的组合,使函数能访问并记住其外部变量,即使在外部函数执行完毕后依然保持引用,从而实现数据私有化、柯里化、事件处理等高级功能,但也需注意内存泄漏和性能开销等问题。 闭包,简单来说,就是一个函数和它被创建时所处的词法环境的组合。这意味着,即使这个函数在它定义时的作用域之外被执行,它…

    2025年12月14日
    000
  • Magento 2中原生ES模块的正确加载姿势与RequireJS兼容性解析

    本文旨在解决在magento 2环境中通过requirejs加载原生javascript es模块时遇到的`uncaught syntaxerror: unexpected token ‘export’`错误。核心问题在于requirejs不直接支持es模块的`import/…

    2025年12月13日
    000
  • 在 Laravel 中发送 HTML 邮件并解决内容换行与格式显示问题

    本教程详细介绍了在 laravel 应用中发送 html 格式邮件的方法,以解决邮件内容换行符(如 “)无法正确渲染,导致文本被截断或格式混乱的问题。核心在于确保邮件内容被识别为 html 类型,并通过 laravel 的 mailable 类和 blade 模板实现这一目标,从而保证邮件在各种客…

    2025年12月12日 好文分享
    000
  • php怎么用ajax_PHP AJAX异步交互与动态数据加载方法

    可通过PHP与AJAX结合实现页面无刷新更新内容,主要方法包括:一、使用原生JavaScript的XMLHttpRequest对象进行异步请求,配置请求参数并处理响应;二、利用jQuery的$.ajax()等方法简化代码,提升开发效率;三、采用Fetch API结合Promise语法实现现代化请求处…

    2025年12月12日
    000
  • 解决Laravel邮件内容换行符不生效问题:发送HTML格式邮件指南

    本教程旨在解决在laravel应用中发送邮件时,html换行符()不生效的问题。核心在于确保邮件内容以html格式发送,而非纯文本。文章将指导您如何利用laravel的mailable系统和blade模板来正确构建和发送包含html格式的邮件,确保换行和其他样式能被邮件客户端正确解析和显示。 理解问…

    2025年12月12日
    000
  • 在 Laravel 中发送 HTML 邮件并确保换行符正确显示

    本教程详细阐述了在 laravel 应用程序中发送包含 html 格式内容(如换行符 “)的电子邮件时,如何确保邮件客户端正确解析。核心在于通过 laravel 的 mailable 类或直接设置邮件头,明确指定 `content-type: text/html`,从而避免内容被错误解析为纯文本或…

    2025年12月12日 好文分享
    000
  • 解决Laravel邮件内容换行显示异常:确保HTML渲染

    在laravel中发送包含html标签(如“)的邮件时,若内容无法正确换行或被截断,通常是因为邮件客户端将其识别为纯文本。核心解决方案是确保邮件头部明确设置`content-type: text/html`。本文将指导您如何在laravel中利用mailable类或`mail::html()`方法…

    2025年12月12日 好文分享
    000
  • 编程语言排行榜2026 十大编程语言推荐

    如果您正在为2026年的技术选型或职业发展寻找最值得学习的编程语言,参考最新的行业趋势和开发者社区动态至关重要。以下是基于当前主流编程语言排行榜和市场需求整理出的十大推荐语言及其应用方向。 点击☞☞☞java速学教程(入门到精通)☜☜☜直接学习 点击☞☞☞python速学教程(入门到精通)☜☜☜直接…

    2025年12月12日 好文分享
    000
  • Web前端获取Select下拉菜单选中值并与后端PHP交互的教程

    本教程详细介绍了如何在web前端使用javascript获取html “ 下拉菜单中用户选中的选项值。文章通过示例代码演示了如何监听 `change` 事件,捕获选定值和文本,并简要说明了如何将这些前端数据传递回后端php进行进一步处理,以实现动态内容展示或数据查询。 在构建交互式Web…

    2025年12月12日
    000
  • PHP框架怎么管理静态资源文件_PHP框架资源压缩与版本控制

    静态资源管理通过合理组织、压缩合并及版本控制提升性能。1. 资源存放在public/css、public/js目录,源文件置于resources/assets由构建工具编译输出;2. 使用Webpack、Vite或Laravel Mix合并CSS/JS为单一文件,启用压缩减小体积,图片转WebP格式…

    2025年12月12日
    000
  • NPM与传统Web项目集成:构建流程、CDN及最佳实践

    本文探讨了将npm包集成到传统php/静态网站结构中的有效策略。针对直接使用node_modules的挑战,我们推荐采用构建工具(如webpack、vite)进行资产优化和打包,以实现“摇树优化”和文件精简。同时,也介绍了利用cdn服务或寻找部署就绪版本作为简化方案,旨在提供一套清晰、高效的npm资…

    2025年12月12日
    000
  • 将NPM模块集成到PHP/静态网站的现代实践

    在php或静态网站中整合npm模块时,直接引用`node_modules`路径并非最佳实践。推荐采用前端构建工具(如webpack、vite)进行资源打包和优化,以实现代码摇树、文件精简。对于小型项目,可考虑使用cdn服务直接引入模块,或手动复制所需文件,但后者维护成本较高。理解这些方法有助于构建高…

    2025年12月12日
    000
  • JavaScript 中将对象转换为带索引的格式化字符串数组

    本教程演示了如何在 javascript 中将一个键值对对象转换为一个扁平化的字符串数组。每个输出字符串将包含原始对象的键、一个三位零填充的递增索引以及对应的值,从而实现数据的结构化格式化输出。文章提供了两种实现方式,包括使用传统的 `for…in` 循环和更简洁的 `object.ke…

    2025年12月12日
    000
  • 使用 AJAX 在 Laravel 中动态构建表格:解决数据未定义问题

    本教程旨在指导您如何在 Laravel 应用中,利用 AJAX 技术动态地从后端获取数据并渲染到 HTML 表格中。我们将详细阐述后端控制器如何正确返回 JSON 格式的数据,以及前端 JavaScript 如何解析这些数据并动态生成表格行,从而有效避免 $users is undefined 这类…

    2025年12月12日
    000
  • JavaScript与PHP交互:处理多行字符串的语法陷阱与解决方案

    本文旨在解决将PHP动态生成的多行内容嵌入到JavaScript字符串时可能遇到的Uncaught SyntaxError: Invalid or unexpected token错误。通过深入剖析传统JavaScript字符串的限制,并引入ES6模板字面量(Template Literals)作为…

    2025年12月12日
    000
  • 解决JavaScript中PHP多行输出导致的语法错误

    本文旨在解决JavaScript同步嵌入PHP多行内容时,由于传统字符串字面量不支持换行而导致的Uncaught SyntaxError: Invalid or unexpected token错误。核心解决方案是利用JavaScript的模板字面量(template literals),即使用反引…

    2025年12月12日 好文分享
    000

发表回复

登录后才能评论
关注微信