回顾JavaScript基础——面向对象

1:定义class

//定义class类
class Employee {
    //构造方法 constructor关键字,不可更改
    constructor(name,age){
        this.name = name ;
        this.age = age ;
    }
}
var emp = Employee("z",20);
console.log(emp);//输出结果:[name:"z",age: 20]

2:成员方法

class Employee {
    constructor(name,age){
        this.name = name ;
        this.age = age ;
    }
    signIn(){
        console.log(this.name+"男");
    }
    get info(){
        this.info = this.name + " " + this.age
    }
    set info(info){
        let [name,age ] = info.split(" ");//用空格解构出来
        this.name = name;
        this.age = age;
    }
}
var emp = Employee("z",20);
emp.signIn();
console.log(emp.info);//输出结果:z 20
//修改他的值
emp.info = "h 19";
console.log(emp.info);//输出结果:h 19
1)getter和setters关键字和原生js的一样,也是使用get和set关键字

3:面向对象实现继承 使用extends关键字

class Father {
    constructor(name,age){
        this.name = name ;
        this.age = age ;
    }
}
//定义一个新的类Son继承上面的Father类
class Son extends Father {
    
}
//创建一个实例
var son1 = new Son("q",20);
console.log(son1);//输出结果:[name:"q" , age:20]

//添加新的属性
son1.num = 5;
console.log(son1);//输出结果:[name:"q" , age:20 , num:5 ]
1)调用父类的构造函数来扩展子类的属性,使用super关键字来代表父类自身
class Father {
    constructor(name,age){
        this.name = name ;
        this.age = age ;
    }
}
//定义一个新的类Son继承上面的Father类
class Son extends Father {
    constructor(name,age,num){
        //使用super关键字来代替父类本身,来实现传值
        super(name,age);
        this.num = num;
    }
}
//创建一个实例
var son1 = new Son("q",20,5);
console.log(son1);//输出结果:[name:"q" , age:20 , num:5]
2)使用super关键字调用父类的其他方法
class Father {
    constructor(name,age){
        this.name = name ;
        this.age = age ;
    }
    signIn(){
        console.log(this.name+"mmp");
    }
}
//定义一个新的类Son继承上面的Father类
class Son extends Father {
    constructor(name,age,num){
        //使用super关键字来代替父类本身,来实现传值
        super(name,age);
        this.num = num;
    }
    //定义子类自己的方法
    signIn(){
        //使用super关键字调用父类的方法
        super.signIn();
        //输出子类方法自己的信息
        console.log(this.name+"nmd");
    }
}
//创建一个实例
var son1 = new Son("q",20,5);
console.log(son1);//输出结果:[name:"q" , age:20 , num:5]
//子类调用自己的方法,方法内会通过super关键字继承父类的方法,并输出自己的信息
son1.signIn();

4:成员变量(新)

class Employee {
    num = "";
}
var emp = new Employee();
console.log(emp);//输出结果:[num:""]
emp.num=5;
console.log(emp);//输出结果:[num:5]

5:静态成员(新) static

1)静态成员变量是class级别的,只能通过(类名.变量)来访问

class Page {
    static count = 0;
}
//只能通过.的方法来访问
Page.count++;
console.log(Page.count);//输出结果:1

2)静态成员方法和静态成员变量一样,只不过是定义了类中的方法 只能通过(类名.方法)来访问

class Page {
    static count = 0;
	static add(){
        Page.count++;
    }
}
//只能通过.的方法来访问
Page.add();
console.log(count);//输出结果:1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值