类是创建对象的模版,使用class
来创建一个类,类中包含一个特殊方法constructor()
,它是类的构造方法,用于创建和初始化一个由class
创建的对象,如果不添加JavaScript会自动添加一个空的构造方法。
创建类的语法格式
class ClassName{
constructor(){}
}
创建一个Person类
//创建类
class Person{
constructor(name,sex){
//初始化属性name、sex
this.name = name;
this.sex = sex;
}
}
类表达式是定义类的另一种方法。
var Person = class{
constructor(name,sex){
this.name = name;
this.sex = sex;
}
}
var User = class User{
constructor(name,sex){
this.name = name;
this.sex = sex;
}
}
可以使用关键字new
来根据定义的类创建对象。创建对象会自动调用类的构造函数constructor()
//定义类
class Person{
constructor(name,sex){
this.name = name;
this.sex = sex;
}
}
//创建对象
var p = new Person('zqq','男');
JavaScript类可以有一个constructor()
方法和任意数量的其他方法
class Person{
constructor(name,sex){
this.name = name;
this.sex = sex;
}
run(){
console.log(name + ' is running====');
}
}
var p = new Person('zqq','男');
p.run();
JavaScript使用extends
关键字来继承类
//父类
class Animal{
constructor(name){
this.name = name;
}
eat(){
console.log('eat food====');
}
}
class Dog extends Animal{
constructor(name,color){
super(name);
this.color = color;
}
}
var dog = new Dog('狗狗','黑色');
console.log(dog.name);
dog.eat();
JavaScript静态方法是使用static
关键字修饰的方法,又叫类方法,属于类,不属于对象,可以使用类名.方法名
调用。
class Person{
constructor(name){
this.name = name;
}
//定义静态方法
static say(){
console.log('Hello World');
}
}
//调用静态方法
Person.say();
JavaScript中所有事物都是对象:字符串、数值、数组等。并且JavaScript允许自定义对象。对象是一种拥有属性和方法的特殊数据。
创建对象有两种方法
使用Object
var person = new Object();
person.name = 'zqq';
person.age = 18;
console.log(person.name);
使用函数
function person(name,age){
this.name = name;
this.age = age;
this.say = function(){
console.log('Hello World');
}
}
var p = new person('zqq',18);
console.log(p.name);
p.say();