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

ES6入门---第三单元 模块一:类、继承

补充:

prototype 属性使您有能力向对象添加属性和方法。

object.prototype.name=value

 <script>function Person(name, age){this.name = name;this.age = age;}/* Person.prototype.showName = function(){return `名字为: ${this.name}`;};Person.prototype.showAge = function(){return `年龄为: ${this.age}`;}; */
//新旧版对比Object.assign(Person.prototype,{ //assign 合并showName(){return `名字为: ${this.name}`;},showAge(){return `年龄为: ${this.age}`;}});let p1 = new Person('Strive', 18);console.log(p1.showName());console.log(p1.showAge());</script>

【ES6】类:ES6里面class没有提升功能,在ES5,用函数模拟可以,默认函数提升

补充:

constructor 属性返回对创建此对象的数组函数的引用。

object.constructor
 class Person{//首字母大写!!!//类:constructor(name,age){ //构造方法(函数), 调用new时自动执行//console.log(`构造函数执行了, ${name}, ${age}`);this.name = name;this.age = age;}showName(){return `名字为: ${this.name}`;}showAge(){return `年龄: ${this.age}`;}}let p1 = new Person('Strive', 18);console.log(p1.showName(), p1.showAge());

快捷定义函数: 省打麻烦字

let a = 'strive';let b = 'method';class Person{[a+b](){}}

 this很难出错,若出错:矫正函数

    1. fn.call(this指向谁, args1, args2....)
    2. fn.apply(this指向谁, [args1, args2....])
    3. fn.bind()

【get set】class里面取值函数(getter), 存值函数(setter)

例:

 class Person{constructor(){}get aaa(){return `aaa的属性`;}set aaa(val){console.log(`设置aaa属性,值为:${val}`);}}let p1 = new Person();p1.aaa='123';console.log(p1.aaa);

【静态方法】: 就是类身上方法 可以直接类名调用 不用重新创建json
    static aaa(){

    }

    父类.aaa();

 继承:

【老方法】

  //父类function Person(name){this.name = name;}Person.prototype.showName = function(){return `名字是: ${this.name}`;};//子类function Student(name,skill){Person.call(this,name); //继承属性  //使用矫正this函数this.skill = skill;}Student.prototype = new Person(); //继承方法//调用let stu1 = new Student('Strive','逃学');console.log(stu1.showName());

【新】

  //父类class Person{constructor(name){this.name = name;}showName(){return `名字为: ${this.name}`;}}//子类class Student extends Person{constructor(name,skill){//别忘了加上参数super(name);//想写子类自己的构造函数必须super()把父类construct函数拉过来 this.skill = skill;}showSkill(){return  `哥们儿的技能为: ${this.skill}`;}}//调用let stu1 = new Student('Strive','逃学');console.log(stu1.showSkill());

*子类父类都有同一函数名的函数 怎么办??

【补充】调用父级里函数 格式:super.函数名()

例:

//子类class Student extends Person{constructor(name,skill){super(name);this.skill = skill;}showName(){super.showName(); //先父级的方法执行//TODO 可以加做子级事情的其他了console.log('子类里的showName');}showSkill(){return  `哥们儿的技能为: ${this.skill}`;}}

在父级函数基础上加上子级自己的函数!

相关文章:

  • 分享一个Android中文汉字手写输入法并带有形近字联想功能
  • DeepSeek Copilot idea插件推荐
  • Allegro23.1新功能之如何设置高压爬电间距规则操作指导
  • Mamba+Attention+CNN 预测模型:破局长程依赖的计算机视觉新范式
  • ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(二)
  • 【JLINK调试器】适配【大华HC32F4A0芯片】的完整解决方案
  • 数据结构--树状数组
  • opencv的contours
  • ABC404G 题解
  • 数据结构(4) 堆
  • Terraform 中的 external 数据块是什么?如何使用?
  • 软考-软件设计师中级备考 12、软件工程
  • Java 中使用 Callable 创建线程的方法
  • 【办公类-99-04】20250504闵豆统计表excle转PDF,合并PDF、添加中文字体页眉+边框下划线
  • postgresql数据库基本操作
  • JVM happens-before 原则有哪些?
  • 数字信号处理学习笔记--Chapter 1 离散时间信号与系统
  • AndroidLogger常用命令和搜索功能介绍
  • ESP32S3 多固件烧录方法、合并多个固件为单一固件方法
  • C语言实现数据结构:堆排序和二叉树_链式
  • 微软上财季净利增长18%:云业务增速环比提高,业绩指引高于预期
  • 解放日报:让算力像“水电煤”赋能千行百业
  • 马上评|科学谋划“十五五”,坚定不移办好自己的事
  • 中国证券监督管理委员会党委委员、副主席王建军接受审查调查
  • 内蒙古公开宣判144件毁林毁草刑案,单起非法占用林地逾250亩
  • 司法服务保障西部陆海新通道建设,最高法专门发文