ES学习class类用法(十一)

server/2024/12/24 8:15:49/

这里写目录标题

  • 一、class 类的用法
  • 二、类的继承

一、class 类的用法

JS语言中,生成实例对象的传统方法是通过构造函数:

        function Person(name,age){this.name=name;this.age=age;}Person.prototype.sayName=function(){return this.name}let p=new Person('小马哥',18);console.log(p);//Person {name: '小马哥', age: 18}

ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。
基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。上面的代码用 ES6 的class改写,就是下面这样

        class Person{// constructor方法 是类的默认方法,通过new命令生成对象实例时,自动调用该方法,一个类必须有constructor方法,如果没有定义,会被默认添加constructor(name, age) {this.name = name;this.age = age;}//等同于Person.prototype = function sayName(){}sayName(){return this.name;}}console.log(new Person('小马哥',18));

类的方法内部如果含有this,它默认指向类的实例.

二、类的继承

        class Animal{// 实例化的时候会立即被调用constructor(name, age){this.name = name;this.age = age;}setName(){return this.name;}setAge(){return this.age;}}class Dog extends Animal{constructor(name, age, color){// 如果 子类 继承了 父类,且 子类 中写了构造器,则 子类 构造器的 super 必须要调用super(name, age);  // 等同于 Animal.call(this,name,age); 继承父类的属性this.color = color;}// 子类自己的方法setColor(){return `${this.name}${this.age}岁了,它的颜色是${this.color}`;}// 重写父类的方法setName(){// super 相同于 Animalreturn this.name + super.setAge() + this.color;}}let d1 = new Dog('小黄', 28, 'red');console.log(d1.setAge());     // 调用继承父类的方法console.log(d1.setColor());   // 调用子类自己的方法console.log(d1.setName());    // 调用重写父类的方法

http://www.ppmy.cn/server/152718.html

相关文章

你一般什么时候会用到GPT?

发掘GPT的潜力 在这个信息爆炸的时代,你是否常常感觉到时间不够用?工作繁忙,学习压力大,这些问题让许多人喘不过气来。而GPT,这个日益流行的人工智能工具,可以帮你解决这些烦恼,提升效率&#…

WPSJS:让 WPS 办公与 JavaScript 完美联动

随着办公自动化需求的日益增长,WPS Office 推出了 WPSJS,这是一款强大的开发者工具,允许开发者通过 JavaScript 脚本与 WPS 办公软件进行互动。无论是在表格中自动填充数据、在文档中修改格式,还是在演示文稿中插入动态内容&#…

Spring基础分析12-文件上传下载功能

大家好,今天和大家一起学习一下spring的文件上传和下载功能~ 文件上传和下载是两个非常常见的功能需求。Spring框架提供了强大的支持,使我们能够轻松地实现这些功能。 1. 环境搭建 首先,确保项目基于Spring Boot构建,并且已经正…

Slate文档编辑器-TS类型扩展与节点类型检查

Slate文档编辑器-TS类型扩展与节点类型检查 在之前我们基于slate实现的文档编辑器探讨了WrapNode数据结构与操作变换,主要是对于嵌套类型的数据结构类型需要关注的Normalize与Transformers,那么接下来我们更专注于文档编辑器的数据结构设计,…

hive 两次操作时间间隔大于0.5小时(LAG)

需求 明细表A记录工人的操作记录,create_time 是操作时间,需要统计操作时间间隔大于0.5小时的次数 WITH ordered_actions AS (SELECTwaybill_no,create_time,-- 使用 LAG 函数获取上一条记录的 create_timeLAG(create_time) OVER (PARTITION BY waybil…

微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁

Senparc.Weixin SDK 更新 Sample,批处理发布单个模块的 Sample 更新 Sample,引用最新版本 SDK NeuCharFramework 文档更新,提供全文检索功能 模板更新,提供菜单设置页面的父层节点置顶,解决菜单项过长,不容易编辑…

nginx学习总结(不包含安装过程)

1. nginx常见配置 http服务上支持【若干虚拟主机】。每个虚拟主机对应一个server配置项,配置项里面包含该虚拟主机相关的配置。 server{listen 80 default;server_name www.yonqin.com;index index.html index.htm index.php;root /data/www;location ~ .*\.(gif|…

Ubuntu概述

Ubuntu文件系统结构 Linux中/是一切的根目录 文件系统结构: Ubuntu磁盘管理 Ubuntu文件压缩 Ubuntu用户与用户组 文件权限变更