专业装饰企业展厅设计公司,合肥市网站优化,杭州网站设计 网站,该网站尚未备案 腾讯云【JS】类 class 定义类类的方法类继承静态方法 类#xff08;class#xff09;是用于创建对象的模板。
我们使用 class 关键字来创建一个类#xff0c;类体在一对大括号 {} 中#xff0c;我们可以在大括号 {} 中定义类成员的位置#xff0c;如方法或构造函数。
每个类中… 【JS】类 class 定义类类的方法类继承静态方法 类class是用于创建对象的模板。
我们使用 class 关键字来创建一个类类体在一对大括号 {} 中我们可以在大括号 {} 中定义类成员的位置如方法或构造函数。
每个类中包含了一个特殊的方法 constructor()它是类的构造函数。
这种方法用于创建和初始化一个由 class 创建的对象。
定义类
函数声明和类声明之间的一个重要区别在于, 函数声明会提升类声明不会。
你首先需要声明你的类然后再访问它否则类似以下的代码将抛出 ReferenceError
创建一个类的语法格式如下
// name 是类的名称
// params 是实例化时穿的参数class name {constructor(params) {}
}栗子
// 定义一个名字为 Boy 的类
class Boy {constructor(name, age) {this.name name;this.age age;}
}// 使用 new 关键字来创建对象创建对象时会自动调用构造函数方法 constructor()
let xiaomage new Boy(小马哥, 30); // { name: 小马哥, age: 30 }
let maliao new Boy(马立奥, 3); // { name: 马立奥, age: 3 }构造方法 constructor 是一种特殊的方法
构造方法名为 constructor()。构造方法在创建新对象时会自动执行。构造方法用于初始化对象属性。如果不定义构造方法JavaScript 会自动添加一个空的构造方法。
类的方法
我们使用关键字 class 创建一个类可以添加一个 constructor() 方法然后添加任意数量的方法。
class ClassName {constructor() { ... }method_1() { ... }method_2() { ... }method_3() { ... }
}以下实例创建一个 “say” 方法
class Boy {constructor(name, age) {this.name name;this.age age;}say() {return 干啥}
}let maliao new Boy(马立奥, 3);
let say maliao.say();
console.log(say); // 干啥还可以向类的方法传递参数
class Boy {constructor(name, age) {this.name name;this.age age;}say(data) {return 干啥 data;}
}let maliao new Boy(马立奥, 3);
let say maliao.say(我是马立奥);
console.log(say); // 干啥我是马立奥class Boy {constructor(name, age) {this.name name;this.age age;}say(data) {return 干啥 data;}
}
let maliao new Boy(马立奥, 3);
let say maliao.say(我是马立奥);
console.log(say); // 干啥我是马立奥类继承
JavaScript 类继承使用 extends 关键字。
继承允许我们依据另一个类来定义一个类这使得创建和维护一个应用程序变得更容易。
super() 方法用于调用父类的构造函数。
当创建一个类时您不需要重新编写新的数据成员和成员函数只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类父类新建的类称为派生类子类。
继承代表了 is a 关系。例如哺乳动物是动物狗是哺乳动物因此狗是动物等等。 // 基类
class Animal {// eat() 函数// sleep() 函数
};//派生类继承基类 Animal
class Dog extends Animal {// bark() 函数
};以下实例创建的类 “LittleBoy” 继承了 “Boy” 类:
class Boy {constructor(name) {this.name name;}say() {return hi}
}
class LittleBoy extends Boy {constructor(name, age) {super(name);this.age age;}sayHello() {return this.say() 我今年 this.age 岁啦;}
}const maliao new LittleBoy(马立奥, 3);
console.log(maliao); // { name: 马立奥, age: 3 }
console.log(maliao.say()); // hi
console.log(maliao.sayHello()); // hi我今年 3岁啦。super() 方法引用父类的构造方法。
通过在构造方法中调用 super() 方法我们调用了父类的构造方法这样就可以访问父类的属性和方法。
继承对于代码可复用性很有用。
静态方法
静态方法是使用 static 关键字修饰的方法又叫类方法属于类的但不属于对象。
在实例化对象之前可以通过 类名.方法名 调用静态方法。
静态方法不能在对象上调用只能在类中调用。
class Boy {constructor(name) {this.name name;}static say(x) {return hi x.name}
}let maliao new Boy(马立奥);
console.log(maliao); // { name: 马立奥 }// 这样直接调用会报错实例对象不能调用静态方法
console.log(maliao.say()); // 如果想在对象 maliao 中使用静态方法可以作为一个参数传递给它
console.log(Boy.say(maliao)); // hi 马立奥