JavaScript面向对象

原型继承

javascript、java、c#------面向对象;但是javascript有些区别!

  • 类:模板
  • 对象:具体实例

在javascript中,需要大家转换一下思维方式!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    let Student = {
        name:'学生',
        age:18,
        run:function () {
            console.log(this.name + "run...");
        }
    };
    let student1 = {
        name:'小明'
    };
    let Bird = {
        fly:function () {
            console.log(this.name + "fly...");
        }
    };
    // 小明的原型是 Student
    student1.__proto__ = Student;
    student1.__proto__ = Bird;
</script>

</body>
</html>

class集继承

class关键字,是在ES6引入的
1、定义一个类、属性、方法

// ES6 之后
// 定义一个学生类
class Student{    
    constructor(name) {        
        this.name = name;    
    }   
    hello(){       
        alert('hello');   
    }
}

2、继承

<script>

/*    function Student(name) {
        this.name = name;
    }
    // 给 Student 新增一个方法
    Student.prototype.hello = function () {
        alert('hello');
    }*/
    // ES6 之后
    // 定义一个学生类
    class Student{
        constructor(name) {
            this.name = name;
        }
        hello(){
            alert('hello');
        }
    }
    class Person extends Student{
        constructor(grade) {
            super(name);
            this.grade = grade;
        }
        myGrade(){
            alert('grade');
        }
    }

    let student = new Student('张三');
    let person = new Person('李四',100);
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值