class-为子类挂载独有的实例属性和实例方法|学习笔记

简介: 快速学习 class-为子类挂载独有的实例属性和实例方法

开发者学堂课程【React 入门与实战class-为子类挂载独有的实例属性和实例方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8100


class-为子类挂载独有的实例属性和实例方法


一、为子类挂载独有的实例属性和方法

class Person{
constructor(name,age){

this.name = name

this.age = age

}

sayHello(){

console.log(‘大家好’)

}

}

class American extends Person{

constructor(name,age){

//问题1:为什么一定要在 constructor 中调用 super

//答案:因为如果一个子类,通过 extends 关键字继承了父类。那么在子类constructor 构造函数中,必须优先调用 super()

//问题2super 是什么东西?

//答案:super 是一个函数,而且它是父类的构造器,子类中的 super 其实就是父类中,constructor 构造器的一个引用

//问题3:为什么调用了 super 之后,a1 实例的 name age 都变成了 undefined 了?

super(name,age)

}

}

const a1 = new American(‘Jack’,20)

console.log(a1)

a1.sayHello()

class Chinese extends Person{

//name姓名

//age 年龄

//IDNumber 身份证号 【中国人独有】 既然是独有的,就不适合挂载到父类

constructor(name,age, IDNumber){

//语法规范,在子类中,this 只能放到 super 之后使用

this.IDNumber = IDNumber

super(name,age)

}

}

const c1 = new American(‘张三’,20’130428*******’)

console.log(c1)

c1.sayHello()

实例属性:是通过 new 出来的实例访问到的属性

class Animal{

//类中的构造器

constructor (name,age)

{

this.name=name; // 实例属性

this.age=age; // 实例属性

}

}

console.log(a1.name)

console.log(a1.age)

实例方法:挂载到原型对象 prototype 上的方法

function Person(name,age)

{

this.name=name;

this.age=age;

}

//实例方法

Person.prototype.speak=function()

{

console.log("Person的实例方法")

}

p1.speak();

实例方法在调用时 通过创建出的对象调用

相关文章
|
Ubuntu
Ubuntu 20.04 安装 Fira Code 字体
Ubuntu 20.04 安装 Fira Code 字体
1433 0
|
存储
力扣每日一题 6/9
力扣每日一题 6/9
104 5
|
机器学习/深度学习 存储 人工智能
深度学习在医疗影像诊断中的应用与挑战
随着人工智能的飞速发展,深度学习技术已广泛应用于医疗影像诊断领域,展现出强大的图像处理和模式识别能力。本文将探讨深度学习在医疗影像中的具体应用实例,分析其面临的技术挑战和未来发展方向。
167 0
|
算法
【力扣】75.颜色分类
【力扣】75.颜色分类
127 1
|
人工智能 流计算
极智AI | 全志XR806 say hello world
大家好,我是极智视界,本文介绍了全志 XR806 say hello world 实现。
202 0
|
存储 设计模式 前端开发
浅析 DDD 领域驱动设计(1)
浅析 DDD 领域驱动设计
548 0
浅析 DDD 领域驱动设计(1)
计算机考研408每日题目 0x1d
计算机考研408每日题目 0x1d
273 0
计算机考研408每日题目 0x1d
|
Web App开发 JavaScript 前端开发
WebStorm 2.1 发布,超强JavaScript编辑器
webStorm是一款商业的JavaScript开发工具,虽然WebStorm的js的提示远远不如aptana那么强悍(输入字母d不提示document),但是做为IntelliJ IDEA的js缩水版,其它功能也是比较期待的。
1141 0
|
分布式计算 大数据 数据处理
上:Spark VS Flink – 下一代大数据计算引擎之争,谁主沉浮?
本文对 Spark 和 Flink 的技术与场景进行了全面分析与对比,且看下一代大数据计算引擎之争,谁主沉浮?
3082 0