JavaScript面向对象:
面向过程
面向过程就是讲需求一步一步自己完全实现
如:一堆衣服,需要自己一件一件洗。
面向对象
面向对象是把有共同特征的方法抽取为类
比如:一堆衣服,都需要洗,创建洗衣机类女朋友类,让她洗。
类的定义和使用:
定义格式:
class 类名 {
//构造方法
constructor(变量列表) {
变量赋值
}
方法名(参数列表) {
方法体;
return;
}
第一种:class类{}
使用:let 对象名 = new 类名();
<script>
//定义Person类
class Person {
//构造方法
constructor(name, age) {
this.name = name;
this.age = age;
}
//show方法
show() {
document.write(this.name + "," + this.age + "<br>");
}
//eat方法
eat() {
document.write("吃饭...");
}
}
//使用Person类
let p = new Person("张三", 23);
p.show();
p.eat();
</script>
第二种:字面量定义
使用:对象名.方法
<script>
// 定义类
let person = {
name: "itzhuzhu",
age: 23,
// 定义数组
hobby: ["看美女", "想美女", "玩美女"],
eat: function () {
document.write("看美女吃饭");
}
};
// 使用类和方法
document.write(person.name + "," + person.age + "," + person.hobby[0] + "," + person.hobby.length);
person.eat();
</script
继承:
让类与类产生子父类的关系,子类可以使用父类有权限的成员。
继承关键字:extends
顶级父类:Object
<script>
//定义Person类
class Person{
//构造方法
constructor(name,age){
this.name = name;
this.age = age;
}
//eat方法
eat(){
document.write("吃饭...");
}
}
//定义Worker类继承Person
class Worker extends Person{
constructor(name,age,salary){
super(name,age);
this.salary = salary;
}
show(){
document.write(this.name + "," + this.age + "," + this.salary + "<br>");
}
}
//使用Worker
let w = new Worker("张三",23,10000);
w.show();
w.eat();
</script