JavaScript class

Class

这是ES6 引入的概念,提供我们更简洁的方式建立物件以及继承,这样我们不用一直写重复的代码。

类别是一种特殊函数
定义类别可以使用
*类别宣告
*类别叙述

类别宣告,使用关键字class 加上类别名称

EX:

class aa{
constructor(name){
this.name=name;
}
}

*注意:类别宣告不会hoisting,否则会ReferenceError

类别叙述 可以有名字或是匿名

EX:

//有名字
var Name=class Name{
constructor(name){
this.name=name;
}
};

//匿名
var Name= class{
constructor(name){
 this.name=name;
}
}

constructor 建构子

它是一种用来初始化类别的方法,一个类别只能有一个建构子,如果多於一个会抛出SyntaxError
**可以用 super 关键字呼叫父类别建构子(可以看下面建构子的部分)
EX:

class Person{
//下面是建构子
constructor(name,age){
this.name=name;
this.age=age;
}

原型方法

EX:

class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
callName(){
 console.log(this.name);
}
}

var p1=new Person('Ivy');
p1.callName(); //Ivy

也可以在建构子中呼叫方法,如此在这个物件初始化时就可以执行此方法

EX:

class Person{
constructor(name,age){
this.name=name;
this.age=age;
this.callName();
}
callName(name){
 console.log(this.name);
}
}

var p1=new Person('My name is Ivy');
//VM480:8 My name is Ivy

静态方法(不用实体化就可以呼叫)

使用static 关键字定义静态方法
EX:

class Person{
constructor(aName){
this.aName=aName;
}
//下面是静态方法
static callName(a){
console.log(a.aName);
}
}
var p1=new Person('111');
Person.callName(p1);

//VM289:6 111

使用 extends 关键字 继承 Class,并使用 super 呼叫父类别

EX:

class Person{
consturctor(name){
this.name=name;
}
callName(){
 return 'Mr.Huang'
}
}

class Child extends Person {
 callName(){
  console.log('My Father is ' + super.callName() + ', and I\'m '+this.name+'.');
}
}
var 小孩1= new Child('Mark');
小孩1.callName();
//VM532:12 My Father is Mr.Huang, and I'm undefined.

参考文章:
MDN Classes
穿越过来的键盘手 | 深入理解 JavaScript 中的 class


<<:  [Day28] Esp32 + IFTTT + Google Sheet - (程序码讲解)

>>:  Swift纯Code之旅 Day19. 「ViewController好乱(1) - MVC介绍)」

Swift纯Code之旅 Day4.「画面分身术 - TableView & AutoLayout」

没错!到现在我们已经有了管理画面的TabbarController了, 今天呢,就要来将闹钟页面的画...

Re: 新手让网页 act 起来: Day24 - React Hooks 之 useMemo

前言 昨天我们介绍过如何使用 React.memo 与 useCallback 来做效能优化,而 u...

Day 5 - 条件渲染与列表渲染

v-if 条件渲染 Vue 之中还有一个相当实用的功能就是条件渲染了,条件渲染类似於使用 if el...

【DAY 2 】Microsoft 365 Developer Program - Microsoft 365 开发人员计画

昨天说到Microsoft 365 开发人员计画 (Microsoft 365 Developer ...

Day28 - 轻前端 Component - 多个 jQuery UI Selectmenu 连动

这篇套用并调整 Day26 的 jQuery UI Selectmenu Vue Component...