这是ES6 引入的概念,提供我们更简洁的方式建立物件以及继承,这样我们不用一直写重复的代码。
类别是一种特殊函数
定义类别可以使用
*类别宣告
*类别叙述
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;
}
}
它是一种用来初始化类别的方法,一个类别只能有一个建构子,如果多於一个会抛出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
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介绍)」
没错!到现在我们已经有了管理画面的TabbarController了, 今天呢,就要来将闹钟页面的画...
前言 昨天我们介绍过如何使用 React.memo 与 useCallback 来做效能优化,而 u...
v-if 条件渲染 Vue 之中还有一个相当实用的功能就是条件渲染了,条件渲染类似於使用 if el...
昨天说到Microsoft 365 开发人员计画 (Microsoft 365 Developer ...
这篇套用并调整 Day26 的 jQuery UI Selectmenu Vue Component...