类是创建对象的模版,使用class来创建一个类,类中包含一个特殊方法constructor(),它是类的构造方法,用于创建和初始化一个由class创建的对象,如果不添加JavaScript会自动添加一个空的构造方法。
创建类的语法格式
class ClassName{constructor(){}
}
创建一个Person类
//创建类
class Person{constructor(name,sex){//初始化属性name、sexthis.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();